Выполните несколько редукционных действий перед открытием PersistGate, где одно зависит от другого - PullRequest
0 голосов
/ 08 октября 2019

В моей функции onBeforeLift я хочу выполнить два асинхронных редукционных действия, где второе зависит от первого.

Это мой текущий код:

import React from "react";
import { BrowserRouter } from "react-router-dom";
import { render } from "react-dom";
import { Provider } from "react-redux";
import { PersistGate } from "redux-persist/es/integration/react";

import App from "./containers/App";
import configureStore from "./redux/store";
import { LanguageActions, VersionActions } from "./redux/actions";

// Extract persistor and store configuration
const { persistor, store } = configureStore();
// Search for the div element with the id 'root' in the index.html file
const mountNode = document.querySelector("#root");

const renderApp = () => {
    // Execute the following redux actions before gate lifts and app is being displayed
    const onBeforeLift = () => {
        store.dispatch(VersionActions.requestVersion());
        store.dispatch(
            LanguageActions.fetchTranslatedLabels(new Date().getFullYear())
        );
    };
    // PersistGate delays rendering of app's UI until
    // persisted stated has been retrieved and saved to redux
    render(
        <Provider store={store}>
            <PersistGate persistor={persistor} onBeforeLift={onBeforeLift}>
                <BrowserRouter>
                    <App />
                </BrowserRouter>
            </PersistGate>
        </Provider>,
        mountNode
    );
};

renderApp();

В соответствии с проблемой GitHub это должно быть возможно, но я не могу найти способ заставить его работатьмое дело. Цель состоит в том, чтобы сохранить значение ответа первого действия и использовать его для выполнения второго вместо new Date(().getFullYear()

...