使用getDerivedStateFromProps后, 以前的方法逻辑该在哪里调用?

旧版本react使用componentWillReceiveProps时的写法

componentWillReceiveProps(nextProps) {
    const { id } = this.props;
    const { id: newId } = nextProps;
    if (newId !== id) {
      // 处理逻辑
      this.handleGet(newId)
    }
  }

新版本react 使用 getDerivedStateFromProps 后里面的逻辑代码该怎么写? 我这样写合适吗?

state = {
  id: ''
}

static getDerivedStateFromProps(nextProps, preState) {
    const { dispatch, id: newId } = nextProps;
    const { id } = preState;
    if (newId && newId !== id) {
      return {
        id: newId
      };
    }
    return null;
}

componentDidUpdate(_, prevState) {
    const { id } = this.state;
    if (id && id !== prevState.id) {
      this.handleGet(id)
    }
}
阅读 1.5k
撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题