Убедитесь, что диспетчерские и редукторы работают, прежде чем реагировать - PullRequest
0 голосов
/ 13 февраля 2019
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 и его соответствующие редукторы установили новое состояние до выполнения строки ReactDOM.render.

Я хочу, чтобы приложение не отображалось доначальное состояние установлено.

Спасибо

1 Ответ

0 голосов
/ 13 февраля 2019

Использование 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 / > );
}
});
...