使用mapStateToProps设置道具后,如何更新状态?

时间:2019-11-01 17:14:57

标签: reactjs redux material-ui

我使用Redux的defaultValue设置的道具设置文本字段的mapStateToProps

当文本字段发生更改(使用onChange={...}检测到)时,我致电setState来捕获用户输入。

问题是,如果文本字段保持不变,则永远不会调用setState。如果用户提交表单,则defaultValue不会声明该表单,因此将提交一个空字符串。

许多建议使用componentWillReceiveProps,但是不建议使用此方法。

1 个答案:

答案 0 :(得分:0)

通过针对类组件的getDerivedStateFromProps或通过针对功能组件的setState回调调用useEffect来将值提供给组件状态:

const [state, setState] = useState(props.propFromRedux)
useEffect(() => setState(props.propFromRedux), [props.propFromRedux])