Javascript 在React+;中使用新的生命周期方法通过更改id获取数据;重演

Javascript 在React+;中使用新的生命周期方法通过更改id获取数据;重演,javascript,reactjs,redux,react-lifecycle,Javascript,Reactjs,Redux,React Lifecycle,我在《React》(《代码》)一书中就这样做了,为什么不只是为了这个目的而使用呢(顺便说一句,官方文件中的例子也表明了这一点) 那怎么办呢?他们还警告说,还有更简单的选择: 如果需要执行副作用(例如,数据获取或 动画)为了响应道具的更改,请使用componentDidUpdate 而不是生命周期 谢谢,我知道我把它复杂化了。 componentDidMount () { fetchData(this.props.id) } componentWillReceiveProps(nextPro

我在《React》(《代码》)一书中就这样做了,为什么不只是为了这个目的而使用呢(顺便说一句,官方文件中的例子也表明了这一点)

那怎么办呢?他们还警告说,还有更简单的选择:

如果需要执行副作用(例如,数据获取或 动画)为了响应道具的更改,请使用componentDidUpdate 而不是生命周期


谢谢,我知道我把它复杂化了。
componentDidMount () {
  fetchData(this.props.id)
}

componentWillReceiveProps(nextProps) {
  if (this.props.id !== nextProps.id) {
    fetchData(nextProps.id)
  }
}

render() {
  if (this.props.isLoading) {
    return <Loader />
  } else {
    return <SuperComp this.props.data />
  }
}
componentDidUpdate(prevProps) {
  if (this.props.id !== prevProps.id) {
    fetchData(this.props.id);
  }
}