Reactjs Redux存储在页面更改时不断重置
我目前有一个多页面的React.js应用程序,我使用Redux作为我的全局状态管理器。然而,我注意到每次我在网站上切换页面时,Redux商店都会被重置 由于React应用程序在客户端浏览器上运行,我的理解是redux应用商店应该在页面更改之间保持不变。然而,鉴于我的应用程序不断重置redux商店,我希望有人能指出我可能做错了什么 App.js:Reactjs Redux存储在页面更改时不断重置,reactjs,redux,Reactjs,Redux,我目前有一个多页面的React.js应用程序,我使用Redux作为我的全局状态管理器。然而,我注意到每次我在网站上切换页面时,Redux商店都会被重置 由于React应用程序在客户端浏览器上运行,我的理解是redux应用商店应该在页面更改之间保持不变。然而,鉴于我的应用程序不断重置redux商店,我希望有人能指出我可能做错了什么 App.js: import React, { Component } from "react"; import { BrowserRout
import React, { Component } from "react";
import {
BrowserRouter as Router,
Switch,
Route } from "react-router-dom";
import axios from "axios";
import { connect } from "react-redux";
import { fetchUserData } from "./redux/actions/userActions";
import dashboard from "./pages/dashboard";
import search from "./pages/search";
import home from "./pages/home";
import error from "./pages/404";
// API URL
axios.defaults.baseURL = 'http://127.0.0.1:5000/api';
class App extends Component {
componentDidMount(){
this.props.fetchUserData();
}
render(){
return (
<Router>
<Switch>
{/* landing page */}
<Route
exact
path="/"
component={ home }/>
{/* search page */}
<Route
exact
path="/search"
component={ search }/>
{/* dashboard page */}
<Route
exact
path="/dashboard"
component={ dashboard }/>
{/* error page */}
<Route
component={ error }/>
</Switch>
</Router>
)
}
}
const mapDispatchToProps = dispatch => {
return {
fetchUserData: () => dispatch(fetchUserData())
};
};
export default connect(null, mapDispatchToProps)(App);
import React,{Component}来自“React”;
进口{
BrowserRouter作为路由器,
转换
路由}从“反应路由器dom”;
从“axios”导入axios;
从“react redux”导入{connect};
从“/redux/actions/userActions”导入{fetchUserData};
从“/pages/dashboard”导入仪表板;
从“/pages/search”导入搜索;
从“/pages/home”导入主页;
从“/pages/404”导入错误;
//API URL
axios.defaults.baseURL='0http://127.0.0.1:5000/api';
类应用程序扩展组件{
componentDidMount(){
this.props.fetchUserData();
}
render(){
返回(
{/*登录页*/}
{/*搜索页*/}
{/*仪表板页*/}
{/*错误页*/}
)
}
}
const mapDispatchToProps=调度=>{
返回{
fetchUserData:()=>调度(fetchUserData())
};
};
导出默认连接(空,mapDispatchToProps)(应用程序);
我想我设法解决了它
我使用
标记而不是
组件在页面之间导航,导致页面刷新并重置状态
(非常感谢所有帮助我缩小范围的人,特别是@PasVV和@lavor)多页应用程序是什么意思?是一个具有多个视图的应用程序,还是react应用程序的多个实例?您使用的路由器是否可以防止在路由更改时重新加载页面?抱歉,我的意思是,这是一个具有多个页面的web应用程序。现在我将添加
App.js
文件以获取更多信息clarity@HMR我正在使用react router dom
中的BrowserRouter
——不完全确定它是否会阻止页面重新加载。有趣的是,App.js
每次我切换页面时都会重新启动。也许你应该看看这个答案: