How would you create a functional component that displays a counter incremented by a button press?
Các phương án trả lời
Chọn một phương ánLời giảiChọn phương án để mở
Đáp án đúng: "const Counter = () => { const [count, setCount] = useState(0);
return <View><Text>{
count
}</Text>
<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.