我正在使用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
可能是大多数人想要的解决方案,但是我只是想知道上面的类组件方法是否有类似的解决方案,因为语法非常好。
答案 0 :(得分:1)
将项目而不是道具置于状态,并将props
用作{em>的参数,而不是Component
:
item