所以,我在react-route配置文件中有这两个组件:
<Route path="/questions/:test_id" component={QuestionsComponent}>
<Route path="/questionnew/:test_id" component={QuestionModalNewComponent} />
</Route>
它们是独立的组件,而不是父子类型。 QuestionModalNewComponent (顾名思义)显示了一个模态&#34;窗口&#34;在用户点击&#34; Save&#34;之后添加问题新问题已保存,然后我致电:
this.props.router.push('/questions/'+this.props.routeParams.test_id);
因为现在我需要在屏幕上显示所有问题(包括我刚创建的那些问题)。然而,反应路由器没有重新加载&#34; QuestionsComponent
我猜测,因为 QuestionModalNewComponent 嵌套在 QuestionsComponent &lt; Route&gt; 元素中,这就是阻止它的原因 QuestionsComponent 是&#34;已执行&#34;试。
有没有办法重新加载React组件?
更新
根据这个帖子:
https://github.com/ReactTraining/react-router/issues/1982
React-router不是以这种方式工作的,重新加载数据应该由react组件生命周期方法处理:componentWillMount,componentDidMount等。所以我将Modal屏幕移动到父组件。大家好!