Which of the following is the correct syntax to use useDispatch in a functional component?

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 MyComponent = () => { const dispatch = useDispatch(); return <div>My Component</div>; };". useDispatch là hook của React Redux, phải GỌI nó ở cấp cao nhất của function component để nhận về hàm dispatch của store, sau đó dùng dispatch(action) trong các hàm xử lý sự kiện để gửi action tới reducer. Phương án viết "dispatch = useDispatch;" thiếu cặp ngoặc gọi hàm, nên biến dispatch chỉ giữ chính hàm hook chứ không phải hàm dispatch của store, gọi dispatch(action) về sau là gọi hook sai chỗ. Phương án viết "const dispatch = dispatch()" gọi một biến ngay trong câu khai báo chính nó; hằng const còn ở vùng chết tạm thời (temporal dead zone) nên ném ReferenceError, và cũng không hề dùng useDispatch. Phương án hiển thị "My Component with {dispatch}" lấy được dispatch đúng cách nhưng lại nhúng một hàm vào JSX làm nội dung con; React không render được hàm và sẽ cảnh báo, nên đó không phải cách dùng useDispatch đúng.

Cùng phần 9

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