Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/364.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将自定义道具传递给单个SPA儿童应用程序?_Javascript_Reactjs_Micro Frontend - Fatal编程技术网

Javascript 如何将自定义道具传递给单个SPA儿童应用程序?

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 microapp。我唯一能想到的是:

从“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附带的模型在这里可能更有用。