How can you access the state and dispatch from Context in a child 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 { state, dispatch } = useContext(CountContext);". Mẫu thường gặp là component cha dùng useReducer rồi truyền một đối tượng gồm state và dispatch vào prop value của CountContext.Provider; component con gọi useContext(CountContext) để nhận chính đối tượng đó và phân rã lấy hai khoá state, dispatch. "const [state, dispatch] = useContext(CountContext);" dùng ngoặc vuông để phân rã mảng, chỉ đúng nếu value là mảng; với value là đối tượng, phân rã mảng sẽ ném lỗi vì đối tượng không lặp được. "const { state, dispatch } = CountContext;" phân rã thẳng đối tượng context do createContext tạo ra; đối tượng này chỉ có Provider và Consumer chứ không chứa state hay dispatch, nên cả hai ra undefined. "const state = CountContext.state;" cũng đọc thuộc tính trên đối tượng context nên ra undefined; giá trị hiện hành chỉ lấy được qua useContext hoặc Consumer.

Cùng phần 6

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