react router 匹配路由组件后如何在组件中 dispatch action 一次?

用到了 react, react-router 4.1.1, redux 3.7.0, react-redux 5.0.5

Route配置为 <Route path="/:id" component={ Datagrid }/>,其中 id 为 path 路径,Datagrid 为一个展示数据表格的容器组件,主体内容为antd的 Table 组件,其中 columns 和 dataSource 要求能根据 path 切换,我想实现当点击 /user 时加载 user 的 columns 和 dataSource,当点击/odm 时加载 odm 的 columns 和 dataSource。

Datagrid 组件如下

https://img1.mukewang.com/5c24711b0001a86905200529.jpg

当点击 /user path 时确实可以加载 user 的 column,但是dispatch(fetchColumn(id))会无限循环,如果把dispatch(fetchColumn(id))放在componentDidMount中,只会加载一次,当点击 /odm 时 Datagrid 组件又不会重新渲染了,不知道该怎么搞。

www说
浏览 568回答 1
1回答
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript