У меня есть 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? Я хочу сохранить свое состояние, даже когда я переключаю страницы.