Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript react路由器:调用组件将跨不同的非嵌套路由卸载_Javascript_Reactjs_Meteor_React Router - Fatal编程技术网

Javascript react路由器:调用组件将跨不同的非嵌套路由卸载

Javascript react路由器:调用组件将跨不同的非嵌套路由卸载,javascript,reactjs,meteor,react-router,Javascript,Reactjs,Meteor,React Router,我使用的react路由器的路由结构如下: const routes = ( <Router history={browserHistory}> <Route path="/main" component={MainPage}></Route> <Route path="/charts/:chartID" component={App}></Route> </Router> ) Main.js(服务器

我使用的react路由器的路由结构如下:

const routes = (
  <Router history={browserHistory}>
    <Route path="/main" component={MainPage}></Route>
    <Route path="/charts/:chartID" component={App}></Route>
  </Router>
)
Main.js(服务器):

我从中了解到,当url在我的情况下发生变化时,组件应该卸载,但似乎我遗漏了一些东西。我应该如何解决这个问题


非常感谢您的帮助

您可以通过使用react-redux、浏览器本地存储或其他方式,以不同的方式完成此任务。在这里,你可以改变你的商店

例如,您可以在商店中定义“firstTimeInCharts”,并在“APP”的componentWillMount上更新它,还可以设置“firstTimeInMain”,并在“MainPage”组件的componentWillMount上更新它。您可以通过检查这些状态来跟踪调用函数的方法。您可能还希望在应用商店中存储其他值,以便在整个应用程序中访问这些值

或者,您也可以使用浏览器的local strage执行相同的操作

我希望它能帮助你

  componentDidUpdate(){
    Meteor.call('test',"update");   
  } // prints "update"

  componentWillUnmount(){
    Meteor.call('test',"unmount");
  } // nothing happens when url changes
Meteor.methods({
    'test'(obj){
        console.log(obj)
    }
})