我有一个组件,每次更换新道具时都需要重置状态错误。我当前的解决方案如下:
componentWillReceiveProps(nextProps) {
if (nextProps.teamPoints !== this.props.teamPoints && nextProps.teamPoints) {
if (this.state.formError) {
this.setState({ formError: '' });
}
}
}
仅在更改道具时重置formError
(道具来自redux)。我已经搜索了一个更好的解决方案,但是还没有找到一个比这个更好的解决方案(因为componentDidUpdate会导致应用重新渲染)。
还有什么更好的选择?
答案 0 :(得分:0)
从React blog:
键更改后,React将创建一个新的组件实例,而不是更新当前实例。
因此,如果您的组件很简单并且formError
是state
的唯一组成部分,请为您的组件提供一个key
道具。然后,当您想重置formError
时,请更改key
属性。这将导致创建该组件的新实例。