我希望能够将我的React应用程序与Webpack捆绑在一起,以便放入CDN的分布式副本可以通过一堆与客户端相关的配置进行获取,调用和初始化.
看完这个和这个,我设置了我的WebPack项文件,如下所示:
// ... React requires etc.
(() => {
this.MyApp = (config) => {
// some constructor code here
}
MyApp.prototype.init = () => {
ReactDOM.render(<MyReactApp config={MyApp.config} />, someSelector);
}
})();
Run Code Online (Sandbox Code Playgroud)
想法是在我的客户端,我可以做以下事情:
<script src="./bundle.js" type="text/javascript"></script>
<script type="text/javascript">
MyApp.init({
some: "config"
});
</script>
Run Code Online (Sandbox Code Playgroud)
我的MyApp#init函数会将我的React应用程序渲染到客户端的某个容器中.
我是否以正确的方式思考这个问题?是否有更简单或更有效的方法来解决这个问题?
我的错误是Uncaught TypeError: Cannot set property 'MyApp' of undefined,因为this在IIFE内部undefined.我真的很想了解为什么会发生这种情况以及如何解决它的建议.
提前致谢!