我们如何在React功能组件中的相同功能中获取更新的道具?

时间:2020-10-24 05:03:09

标签: reactjs redux react-hooks

我正在使用redux管理状态。进行API调用后,我将更新我的redux存储,该组件将从redux接收更新的道具,然后根据道具处理状态。

对于类组件,我目前有一个执行此操作的方法:

onEdit = async () => {
  if(!this.props.item) {
    await this.props.fetchItem();
  }
  this.setState({
    item: this.props.item
  });
}

更新的道具将在setState中使用。
这是功能组件相似的示例:

const Component = (item) => {
  ...
  const onEdit = async () => {
    if(!item) {
      await this.props.fetchItem();
    }
    setState(item) // this doesn't work
  };
  ...
}

很显然,以上操作无效,因为道具使用的道具与以前相同。
我认识到useEffect可能是大多数人想要的解决方案,但是我只是想知道上面的类组件方法是否有类似的解决方案,因为语法非常好。

1 个答案:

答案 0 :(得分:1)

将项目而不是道具置于状态,并将props用作{em>的参数,而不是Component

item