Вызов rootReducer из createStore продолжает отправлять Default для случаев редуктора каждый раз, когда загружается новая страница - PullRequest
0 голосов
/ 01 мая 2020

У меня есть 4 основных компонента: store. js, App. js, index. js и indexReducer.

Моя проблема заключается в следующем: у меня простая навигация с использованиемact-router -дом, вызванный нажатием кнопки. Нажатие кнопки Направляет вас на другой путь с отдельными компонентами. Однако каждый раз, когда я нажимаю между различными маршрутами / путями, вызывается мой createStore, который вызывает мой rootReducer в indexReducer и заставляет все мои редукторы в приложении получать значение по умолчанию.

store. js:

import { createStore, applyMiddleware } from "redux";
import thunk from "redux-thunk";
import reducers from "./reducers";

const store = createStore(reducers, applyMiddleware(thunk));

export default store;

Приложение. js

import React from "react";
import SearchBar from "./SearchBar";
import RegisterForm from "./RegisterForm";
import CompareStack from "./CompareStack";
import NavBar from "./NavBar";

import "bootstrap/dist/css/bootstrap.min.css";
import { Provider } from "react-redux";
import { loadUser } from "../actions/serverActions";

import store from "../../src/store";

import { BrowserRouter, Route, Link } from "react-router-dom";

class App extends React.Component {
  componentDidMount() {
    console.log(loadUser);
    store.dispatch(loadUser);
  }

  render() {
    return (
      <div>
        <Provider store={store}>
          <BrowserRouter>
            <NavBar />
            <Route path="/" exact>
              <Link to="/pagetwo">
                <button
                  className="ui button primary"
                  style={{ marginTop: "1%" }}
                >
                  Single Player
                </button>
              </Link>
            </Route>
            <Route path="/" exact>
              <Link to="/pageone">
                <button
                  className="ui button primary"
                  style={{ marginTop: "1%" }}
                >
                  Multi Player
                </button>
              </Link>
            </Route>
            <Route path="/pageone" exact component={CompareStack} />
            <Route path="/pagetwo" exact component={SearchBar} />
            <Route path="/registerform" exact component={RegisterForm} />
          </BrowserRouter>
        </Provider>
      </div>
    );
  }
}

export default App;

indexReducer (я пропустил редукторы в combReducer):

const rootReducer = (state, action) => {
  if (action.type === "REMOVE_ALL") {
    state = undefined;
    return appReducer(state, action);
  }
};

export default rootReducer;

Это моя маршрутизация с response-dom? Я хочу сохранить свое состояние, даже когда я переключаю страницы.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...