一段时间不活动后,React Redux更新(重新渲染)组件

时间:2018-08-14 08:42:55

标签: javascript reactjs express redux mern

您将如何在React Redux(Express / Mongo后端)应用中重新渲染一个或多个组件?

我构建了一个应用,其中多个(经过身份验证的)用户可以在仪表板之类的Todo列表上实时进行协作(使用类似聊天的Notes代替Todo),但是希望在一段时间不活动后强制重新渲染(可能在componentDidMount中使用setInterval?),因此,如果一个用户删除任务,则一段时间后它将最终在所有其他用户的仪表板上刷新。我当时正在考虑将forceUpdate与setInterval结合使用,但请继续阅读所有应避免的地方。

我知道必须使用websockets进行实时更新,但是我想知道是否可以在不使用websockets的情况下针对这种特殊情况使用更简单的短期解决方案,因为我的应用程序确实不需要即时更新

这是主要组成部分(注释列表):

class NoteList extends Component {
  componentDidMount() {
    this.props.getNotes();
  }
}

1 个答案:

答案 0 :(得分:0)

您是对的,最酷的方法是使用websocket监听更改事件。但是从短期来看,投票并不是一个坏主意。只记得清除卸载组件的间隔。

 componentDidMount() {
    this.props.getNotes();
    this.interval = setInterval(() => this.props.getNotes(), 60000);
 }

 componentWillUnmount() {
    clearInterval(this.interval);
 }