使用 ReactuseContext
钩子时,它目前需要从树中更高的组件导入以传入Context
对象。比如说:
// index.jsx
export const MyContext = React.useContext('1')
export function MyApp(props){
return (
<MyContext.Provider value='1'>
<ChildComponent />
</MyContext.Provider>
)
}
// ChildComponent.jsx
import {MyContext} from './index';
export function ChildComponent(props){
const context = useContext(MyContext);
return (<p> {context} </p>)
}
但是如果子组件是联合的,它将单独在一个单独的仓库中,并且不能从'./index'
.
在这个MyApp
级别,我可以导入ChildComponent
:
const ChildComponent= React.lazy(() => import('federatedApp/ChildComponent'))
前提是在 Webpack 配置中,federatedApp
被命名为远程,并且 HTML 文档包含远程模块入口点 .js。但是我怎么给MyContext
遥控器federatedApp
呢?
猜猜答案:我是否需要将两个组件index.jsx
分成两个文件并分别公开它们?