javascript - 如何在 react 中的不同组件库之间共享上下文?

标签 javascript reactjs react-component react-context

在 React 中,有一种简单的方法可以在多个组件层中共享“信息”。这是通过使用上下文

import {UserCtx} from "./stores/UserCtx"; 
<UserCtx.Provider value={new user(info)}>
    <SomeComponent />
</UserCtx.Provider/>

然后在某个组件中:

import {UserCtx} from "./stores/UserCtx";
function SomeComponent() {
    const userData = React.useContext(UserCtx);
    return <div>JSON.stringify(userData)</div>
}

然而,这要求上下文对象定义对所有对象都是可见的。因此,当创建一个组件库时,它真的不能被使用吗?

在上面的“示例”中说 SomeComponent 将是一个库组件,我如何将主应用程序的上下文共享给该组件?通过添加属性来共享似乎有些牵强,在这一点上我还不如直接提供用户(或任何上下文存储)?

最佳答案

您所有的组件库都应该是产生值(value)的组件的子组件。也就是说,如果您的组件是暴露给 DOM 的主要组件,那么值应该位于该顶部,以便任何组件都可以使用上下文。

请注意,上下文可以很好地帮助您避免钻取组件。如果您需要比这更大的灵 active ,Redux 可能会为您提供更多功能。

关于javascript - 如何在 react 中的不同组件库之间共享上下文?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63993563/

相关文章:

javascript - 如何管理对异步服务的可变调用次数

javascript - jQuery ajax 响应在 IE11 中不起作用

reactjs - 我可以阻止通过 url 导航到 View ,但仍允许以编程方式路由吗?

node.js - Kubernetes Nginx Ingress 和 Socket.io 连接问题

javascript - 如何在 react.js 中导入和使用 D3-tube-map

reactjs - React Hooks,如何使用 ReactDom 访问挂载的 parentNode

asp.net - asp cookie 与 javascript cookie

javascript - 弹出窗口无法在 IE7 上打开

java从reactjs解析日期

reactjs - 在reactjs中使用多个组件插入数据