【发布时间】:2016-10-19 08:46:35
【问题描述】:
背景
我正在构建一个包含以下详细信息的应用
- 反应
- 反应路由器
- redux
- 它是通用的javascript
- 节点js
问题
当使用Link 标签从一个组件路由到另一个组件时,它可以完美运行。它调用组件所需的数据并呈现页面。但是当我点击使用与当前组件相同的组件的Link 时,我看到的只是 url 更改。
尝试
我试图让它发挥作用的事情。
尝试 1
到目前为止,我已经尝试了this 问题中的步骤,但该解决方案对我不起作用。这是我实现的代码
componentWillReceiveProps(nextProps) {
if (nextProps.article.get('id') !== this.props.article.get('id')) {
console.log('i got trigggerd YESSSSSSSSSSSSSSS');
}
}
但是变量nextProps总是和当前的props一样。
尝试 2
我决定调用我在componentWillMount 中使用的相同代码,但这也不起作用。
componentWillMount() {
let { category, slug } = this.props.params;
this.props.loadArticleState({ category, slug });
}
当我将它放入componentWillReceiveProps 时,它只会创建一个无限循环。
结论
我认为问题在于单击链接永远不会调用与之关联的数据。由于数据已加载
static fetchData({ store, params }) {
let { category, slug } = params;
return store.dispatch(loadArticleState({ category, slug }));
}
感谢任何帮助。
【问题讨论】:
-
也许试试强制pushing 新的历史记录?
-
这个应该推到哪里?在主要文章组件中还是在
Link to标签中? -
而不是
<Link>,它将是一个带有onClick的元素(例如按钮、跨度)触发.push(/* whatever was in to= */)
标签: reactjs redux react-router