在外部js和React js / Redux之间传递数据

时间:2018-08-27 11:45:09

标签: javascript reactjs react-redux

我已经将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>
        );
    }

1 个答案:

答案 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>
        );
    }