如何与组件共享变量

奥德弗拉

主要应用程序如下所示:

import Cookies from 'js-cookie';
function App() {
let cookie = Cookies.get('mycookie');
return (
    <>
        <Router>
            <div>
                {<Switch>
                    <Route path="/comp1">
                        <Comp1 />
                    </Route>
                    <Route path="/comp2">
                        <Comp2 />
                    </Route>
                </Switch>
            </div>
        </Router>
    </div>
);
}

如您所见,在主应用程序中,我正在读取Cookie。现在,所有组件都需要访问cookie。我该如何使组件从主应用程序读取Cookie?当然,我可以使用“ Cookies.get”读取Cookie。但是,由于我要在App.js中做其他事情,而不是只读取cookie,所以我宁愿在App.js中做一次操作,然后与组件共享所有这些信息。

德鲁·里斯(Drew Reese)

您可以将其作为道具传递给需要它的孩子/后裔

import Cookies from 'js-cookie';

function App() {
  let cookie = Cookies.get('mycookie');
  return (
    <div>
      <Router>
        <div>
          {<Switch>
            <Route path="/comp1">
              <Comp1 cookie={cookie} />
            </Route>
            <Route path="/comp2">
              <Comp2 />
            </Route>
          </Switch>}
        </div>
      </Router>
    </div>
  );
}

在组件中通过道具访问

const { cookie } = props;

或者,您可以使用Context API并创建Cookie上下文

export const CookieContext = React.createContext();

应用程式

import Cookies from 'js-cookie';

function App() {
  let cookie = Cookies.get('mycookie');
  return (
    <div>
      <Router>
        <div>
          <CookieContext.Provider value={cookie}>
            {<Switch>
              <Route path="/comp1">
                <Comp1 />
              </Route>
              <Route path="/comp2">
                <Comp2 />
              </Route>
            </Switch>}
          </CookieContext.Provider>
        </div>
      </Router>
    </div>
  );
}

内部组件

import { CookieContext } from './CookieContext';

const cookie = useContext(CookieContext);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在Ionic 2中的各个组件之间共享变量?

来自分类Dev

如何在angular v4 ts中共享变量并跟踪它在多个组件中的变化

来自分类Dev

如何使用共享内存共享char **变量

来自分类Dev

如何在组件之间共享数据/更改

来自分类Dev

如何在StencilJS组件之间共享状态

来自分类Dev

如何在组件之间共享ContextMenu

来自分类Dev

如何与 MdDialog 内的组件共享范围服务?

来自分类Dev

如何理解组件间的数据共享?

来自分类Dev

如何创建跨网站共享的组件?

来自分类Dev

如何在角度组件之间共享数据?

来自分类Dev

如何从子组件更改父组件的变量

来自分类Dev

组件共享变量由于某种原因

来自分类Dev

Flight.js组件实例应该使用共享变量吗?

来自分类Dev

在所有vue组件实例之间共享变量

来自分类Dev

如何在父组件中为共享组件提供 routerLink

来自分类Dev

如何在服务中创建一个变量,该变量从Promise中获取其数据却又在两个组件之间共享?

来自分类Dev

如何在路由功能之间共享变量?

来自分类Dev

如何使用共享变量简化Tensorboard图?

来自分类Dev

Golang如何在goroutine之间共享变量?

来自分类Dev

如何避免Vue的mixin中的共享变量

来自分类Dev

我们如何强制变量共享?

来自分类Dev

如何在模块之间共享此变量?

来自分类Dev

如何在异步函数之间共享变量?

来自分类Dev

如何在方法之间共享变量?

来自分类Dev

如何共享在块内设置的变量

来自分类Dev

如何与兄弟姐妹共享变量?

来自分类Dev

如何在 Tensorflow 上共享 RNN 的变量

来自分类Dev

如何避免反应中变量的内存共享?

来自分类Dev

如何在方法之间共享变量?

Related 相关文章

热门标签

归档