ComponentDidMount()在安装组件时触发,包括在服务器端渲染后水合时。
我在网上找到的一个解决方案是检查我们是否有州内的数据;但是这需要在每个组件上包含大量代码。还有什么其他解决方案?
componentDidMount() {
// if rendered initially, we already have data from the server
// but when navigated to in the client, we need to fetch
if (!this.state.data) {
this.constructor.fetchData(this.props.match).then(data => {
this.setState({ data })
})
}
}
答案 0 :(得分:1)
我找到了另一种解决方案。在我的Redux商店中,我保留了当前页面的URL。因此,在导航方面,我可以执行以下操作:
reduce(into:)
答案 1 :(得分:0)
只需在商店中使用一个布尔变量,我只使用一个名为" done",当服务器获取数据时将变量设置为true,在compoponentDidMount中的组件中只检查变量是否为如果是,则为true,然后不要获取数据,如下所示:
componentDidMount() {
if(!this.props.done)
this.props.fetchData();
}