我已经将React-redux集成到externalJs应用程序(基于自定义JS框架构建)中。我需要从externalJS设置redux存储的初始数据,但是externalJs无法访问react存储来设置数据。当根reactJS组件安装在DOM上时,将触发存储,但是我需要在将其安装在DOM上之前设置初始数据。我引用了以下链接,但他们无法解决我的问题。有人可以告诉我我在想什么吗?
https://brettdewoody.com/accessing-component-methods-and-state-from-outside-react/
Accessing react components outside
我正在使用webpack,将16.1与redux进行反应
下面在index.js中给出的示例根组件结构
render() {
return (
<Provider store={store}>
<Email ref={(EmailComponent) => { window.EmailComponent = EmailComponent }} />
</Provider>
);
}
答案 0 :(得分:1)
我假设您正在尝试向DOM和其他框架公开EmailComponent和“存储”,因为您是在全局 window 对象上进行声明的。 React.render的第三个参数是回调,您可以使用该回调来了解何时将React App安装到DOM。
ReactDOM.render(<App />, document.getElementById('root'), function () {
// now the root React App is mounted and the data from it will be available
// your window.EmailComponent and window.store should now be avialable
console.log(window.EmailComponent, window.store)
})
render() {
window.store = store
return (
<Provider store={store}>
<Email ref={(EmailComponent) => { window.EmailComponent = EmailComponent }} />
</Provider>
);
}