Reactjs React路由器v4/Mobx出现问题

Reactjs React路由器v4/Mobx出现问题,reactjs,react-router,react-router-v4,mobx-react,Reactjs,React Router,React Router V4,Mobx React,当我点击我的按钮时,我无法让我的路线工作,什么也没有发生。我正在使用 从“/plannerStore”导入plannerStore; 从“mobx react router”导入{RouterStore}; const routingStore=新RouterStore(); 常数存储={ 规划师商店, 路由商店 } 导出默认存储; 从“React”导入React; 从“react dom”导入react dom; 从“mobx react”导入{Provider}; 从'mobx'导入{use

当我点击我的按钮时,我无法让我的路线工作,什么也没有发生。我正在使用

从“/plannerStore”导入plannerStore;
从“mobx react router”导入{RouterStore};
const routingStore=新RouterStore();
常数存储={
规划师商店,
路由商店
}
导出默认存储;
从“React”导入React;
从“react dom”导入react dom;
从“mobx react”导入{Provider};
从'mobx'导入{useStrict};
从“历史记录/createBrowserHistory”导入createBrowserHistory;
从“mobx react router”导入{syncHistoryWithStore};
从“react Router”导入{Router};
从“./App”导入应用程序;
从“./components/PlannerComponent”导入PlannerComponent;
const browserHistory=createBrowserHistory();
从“./stores/index”导入存储;
const history=syncHistoryWithStore(浏览器历史记录,stores.routingStore);
使用严格(正确);
ReactDOM.render(
,
document.getElementById('root'))
);
从“React”导入React,{Component}
从“react dom”导入react dom;
从“mobx react”导入{observer,inject};
从“/CourseComponent”导入CourseComponent;
从“./GradeComponent”导入GradeComponent
从“反应路由器”导入{Route};
@注入('plannerStore'、'routingStore')
@观察者
导出默认类PlannerComponent扩展组件{
构造函数(){
超级();
}
render(){
返回(
)
}
}
从“React”导入React,{Component}
从“react dom”导入react dom;
从“mobx react”导入{observer,inject};
从“../styles/planner.scss”导入计划器
@注入('plannerStore'、'routingStore')
@观察者
导出默认类CourseComponent扩展组件{
构造函数(){
超级();
}
render(){
const{location,push,goBack}=this.props.routingStore;
返回(
推送('/grade')}>grades
)
}
}

这是因为
@observer
正在优化
shouldComponentUpdate
,并阻止您的组件更新。您可以使用
withRouter
高阶组件包装组件,并将当前位置作为其道具之一,因此
路由
将知道位置已更改


您可以在此处阅读更多内容:

尝试将routingStore注入包含路由器组件的组件中,如果PlannerComponent是这样的组件,请执行以下操作:

@inject("routingStore")
@observer
class AppContainer extends Component {
  render() {
    return (
      <Router history={history}>
        <PlannerComponent />
      </Router>
    );
  }
}
@inject(“路由存储”)
@观察者
类AppContainer扩展组件{
render(){
返回(
);
}
}
然后:

ReactDOM.render(
    <Provider {...stores}>
        <AppContainer/>
    </Provider>,
    document.getElementById('root')
);
ReactDOM.render(
,
document.getElementById('root'))
);
ReactDOM.render(
    <Provider {...stores}>
        <AppContainer/>
    </Provider>,
    document.getElementById('root')
);