在我的Context.js文件中,我传递了多个状态变量:
return (
<Context.Provider value={[searchResult, setSearchResult, currentProduct, setCurrentProduct, apiKey, userId, setUserId]}>
{props.children}
</Context.Provider>
);
在一个特定的组件中,我仅使用userId和setUserId元素。要接收这些变量,我要做:
let [searchResult, setSearchResult, currentProduct, setCurrentProduct, apiKey, userId, setUserId] = useContext(Context);
问题是:是否有一种方法可以在此组件中仅接收userId和setUserId,而不必同时声明所有其他未使用的变量?
答案 0 :(得分:2)
您可以更改将值从数组传递到对象的方式。
return (
<Context.Provider value={{ searchResult, setSearchResult, currentProduct, setCurrentProduct, apiKey, userId, setUserId }}>
{props.children}
</Context.Provider>
);
let { userId, setUserId } = useContext(...)
如果您不想更改它,则可以使用索引,但我不推荐它。
let context = useContext(...)
let userId = context[5]
let setUserId = context[6]