How would you create a functional component that displays a counter incremented by a button press?

4 phương ánCó giải thích

Các phương án trả lời

Chọn một phương án
Lời giảiChọn phương án để mở

Đáp án đúng: "const Counter = () => { const [count, setCount] = useState(0);

Lời giải
return <View><Text>{
  count
}

</Text>

Lời giải
<Button title="Increment" onPress={
  () =>

setCount(count + 1)} /></View>; };". useState(0) trả về mảng hai phần tử gồm giá trị hiện tại và hàm cập nhật, nên phải tách bằng destructuring thành count và setCount. Mỗi lần bấm, hàm mũi tên gọi setCount(count + 1), React lưu giá trị mới và render lại Counter nên Text hiện số đã tăng. Bản có "onPress={() => count++}" sai vì count lúc này là cả mảng do useState trả về chứ không phải con số, lại khai báo bằng const nên count++ gây lỗi gán lại hằng, và tự đổi biến cục bộ cũng không báo cho React render lại. Bản có "onPress={setCount}" truyền thẳng setCount làm trình xử lý, nên Button gọi nó với đối tượng sự kiện chạm và count bị gán thành đối tượng đó thay vì tăng thêm 1. Bản có "onPress={() => setCount(count)}" gọi setCount trong khi chưa hề khai báo vì không destructure, nên báo lỗi không tìm thấy biến; kể cả có khai báo thì đặt lại đúng giá trị cũ cũng không tăng.

Cùng chương 6

Xuất hiện trong 1 bộ đề