Which of the following hooks can replace manually registering an event listener to handle when a screen is focused?

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: "useFocusEffect". Trong React Navigation, thay vì tự đăng ký navigation.addListener với sự kiện focus bên trong useEffect rồi nhớ huỷ đăng ký, ta dùng useFocusEffect: nó chạy callback mỗi khi màn hình được focus và gọi hàm cleanup mà callback trả về khi màn hình mất focus; callback nên bọc trong useCallback để không chạy lại thừa. "useRoute" chỉ trả về đối tượng route hiện tại với name và params, không phản ứng với sự kiện focus. "useIsFocused" trả về giá trị boolean cho biết màn hình có đang được focus và làm component render lại khi giá trị đổi; nó hợp để hiển thị theo trạng thái nhưng không phải nơi chạy side effect thay cho listener. "useNavigationState" đọc một phần trạng thái của navigator, chẳng hạn số route trong ngăn xếp, không xử lý sự kiện focus.

Cùng chương 5

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