React.js:丢弃setContext中未使用的变量

时间:2020-10-01 19:36:04

标签: reactjs

在我的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,而不必同时声明所有其他未使用的变量?

1 个答案:

答案 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]