在发生反应之前确保调度和减速器工作

问题描述 投票:0回答:1
Api.GET({
    url: USER_LOGIN_AUTH,
    payload: null,
    onSuccess: response => {
        window.__MUI_USE_NEXT_TYPOGRAPHY_VARIANTS__ = true;
        store.dispatch(getUserAction(response.data));
        ReactDOM.render(
            <Provider store={store}>
                <BrowserRouter>
                    <App />
                </BrowserRouter>
            </Provider>,
            document.getElementById("root")
        );
    },
    onFailure: () => {
        ReactDOM.render(<Unauthorized />);
    }
});

我怎样才能确保store.dispatch及其各自的reducers在ReactDOM.render执行行之前设置了新状态。

我希望在初始状态设置之前保持我的应用程序被渲染。

谢谢

reactjs redux react-redux react-dom
1个回答
0
投票

使用Promise可以帮助:

Api.GET({
    url: USER_LOGIN_AUTH,
    payload: null,
onSuccess: response => {
    window.__MUI_USE_NEXT_TYPOGRAPHY_VARIANTS__ = true;

    new Promise(function(resolve, reject) {

        try {
            resolve(store.dispatch(getUserAction(response.data)));
        } catch (error) {
            reject(error);
        }

    }).then(store => {

        ReactDOM.render( < Provider store = {store} >
            <BrowserRouter >
            <App />
            </BrowserRouter> </Provider>,
            document.getElementById("root")
        );

    })

},
onFailure: () => {
    ReactDOM.render( < Unauthorized / > );
}
});
© www.soinside.com 2019 - 2024. All rights reserved.