【问题标题】:react use context value inside a parent context在父上下文中反应使用上下文值
【发布时间】:2021-02-03 03:15:42
【问题描述】:

我的 app.js 文件中有 2 个上下文:

function App() {
  return (
      <AuthContext>
        <ChildContext>
         <Template />
        </ChildContext>
     </AuthContext>
  );
}

当用户注销时,我想访问 ChildContext 内的值,但 logout 函数在 AuthContext 内:

// inside AuthContext:
const myContext = useContext(ChildContext);
const logout = () => {
  // doing some stuff..
  //
  // here is the problem:
  console.log(myContext.some_value);
}

错误是:

cannot read property 'some_value' of undefined

这是因为ChildContextAuthContext 之后声明。 那么我怎样才能在AuthContext 中到达some_value

【问题讨论】:

    标签: javascript reactjs react-context


    【解决方案1】:

    在 React 中 data flows down,所以你的选择是:

    1. ChildContext 成为 AuthContext 的父母。
    2. logout 函数移动到自己的上下文中
    function App() {
      const logout = () => {
        /*...*/
      };
      return (
        <LogoutContext value={logout}>
          <AuthContext>
            <ChildContext>
              <Template />
            </ChildContext>
          </AuthContext>
        </LogoutContext>
      );
    }
    

    【讨论】:

    • 在您的回答的帮助下,我使用了选项 2 并制作了一个带有“/logout”路由的单个组件。并在其中编写注销逻辑。谢谢
    猜你喜欢
    • 2018-07-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-28
    • 2021-07-22
    • 1970-01-01
    • 2019-03-06
    • 2017-04-12
    相关资源
    最近更新 更多