Маршрутизация запускает состояние карты для реквизита на не смонтированном компоненте - PullRequest
1 голос
/ 05 ноября 2019

Я пишу приложение, которое использует react-router для маршрутизации и использует Redux для управления состоянием. Мое приложение содержит два редуктора для двух разных страниц, поэтому при маршрутизации между ними я также использую replaceReducers (называемый componentWillMount) для переключения между редукторами.

При фактической маршрутизации между страницами,mapStateToProps компонента unmounts вызывается и, конечно, выдает исключение, поскольку редуктор был заменен, поэтому состояние для предыдущего редуктора больше не определяется. (эта ошибка однонаправленная - т.е. только с первой страницы на вторую страницу или наоборот).

Следует отметить, что я также создал history для маршрутизатора сам и заменил его исходную историюсвойство в точке входа моего приложения. Почему вызывается mapStateToProps, если компонента больше нет в DOM?

Пример кода:

первая страница:

    public componentWillMount() {
        replaceReducers({
            reducer: FirstPageReducer,
        });
    }

вторая страница:

    public componentWillMount() {
        replaceReducers({
            reducer: SecondPageReducer,
        });
    }

магазин:

 export function replaceReducers(reducers: ReducersMapObject<any, AnyAction>) {
    store.replaceReducer(combineReducers(reducers));
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...