Reactjs Redux存储在页面更改时不断重置

Reactjs Redux存储在页面更改时不断重置,reactjs,redux,Reactjs,Redux,我目前有一个多页面的React.js应用程序,我使用Redux作为我的全局状态管理器。然而,我注意到每次我在网站上切换页面时,Redux商店都会被重置 由于React应用程序在客户端浏览器上运行,我的理解是redux应用商店应该在页面更改之间保持不变。然而,鉴于我的应用程序不断重置redux商店,我希望有人能指出我可能做错了什么 App.js: import React, { Component } from "react"; import { BrowserRout

我目前有一个多页面的React.js应用程序,我使用Redux作为我的全局状态管理器。然而,我注意到每次我在网站上切换页面时,Redux商店都会被重置

由于React应用程序在客户端浏览器上运行,我的理解是redux应用商店应该在页面更改之间保持不变。然而,鉴于我的应用程序不断重置redux商店,我希望有人能指出我可能做错了什么

App.js:

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
每次我切换页面时都会重新启动。也许你应该看看这个答案: