Javascript 如何将自定义道具传递给单个SPA儿童应用程序?
我想用我从()传递的道具开始我的React microapp。我唯一能想到的是:Javascript 如何将自定义道具传递给单个SPA儿童应用程序?,javascript,reactjs,micro-frontend,Javascript,Reactjs,Micro Frontend,我想用我从()传递的道具开始我的React microapp。我唯一能想到的是: 从“React”导入React; 从“react dom”导入react dom; 从“single spa react”导入singleSpaReact; 从“/where/my/root/is.js”导入应用程序; 函数domElementGetter(){ 返回文档.getElementById(“装载节点”) } 让EnhancedRootComponent=App;/*1 */ const reactLi
从“React”导入React;
从“react dom”导入react dom;
从“single spa react”导入singleSpaReact;
从“/where/my/root/is.js”导入应用程序;
函数domElementGetter(){
返回文档.getElementById(“装载节点”)
}
让EnhancedRootComponent=App;/*1 */
const reactLifecycles=singleSpaReact({
反应
反动,
rootComponent:EnhancedRootComponent,/*1*/
家庭主妇,
})
导出常量引导=[
(args)=>{
/*2*/EnhancedRootComponent=()=>;
返回承诺。解决();
},
reactLifecycles.bootstrap,
];
export const mount=[reactLifecycles.mount];
export const unmount=[reactLifecycles.unmount];
这个确实有效(我可以在我的组件中看到并使用传递的道具),但是我不完全同意根组件在调用
singleSpaReact
(1)和调用bootstrap
(2)之间发生变化的事实。会不会有我现在没有看到的副作用?有人知道更好的方法吗?在props变量中有这个值,而不需要重新赋值。
查看此链接:Root-config.js,负责将道具传递给microfrontend的文件
import{registerApplication,start}从'singlespa'开始;
从“/activity functions”导入*作为isActive;
registerApplication('@company/micro2',()=>System.import('@company/micro2'),isActive.micro2);
registerApplication('@company/micro1',()=>System.import('@company/micro1'),isActive.micro1,{“authToken”:“test”});
start();
micro1 Root.tsx
从“React”导入React;
导出默认类根扩展React.Component{
构造器(道具:任何){
超级(道具)
}
状态={
错误:错,
};
componentDidCatch(){
this.setState({hasError:true});
}
render(){
console.log(this.props)
返回(
测试
);
}
}
console.log输出:
道具:
authToken:“测试”
新承诺((解决,拒绝)=>解决(()=>
)),
家庭主妇,
});
如果您主要构建微前端,那么Piral附带的模型在这里可能更有用。