当用户从选择下拉列表中选择一个值时,onChange
会调用父容器中的一个函数。在那里,我需要检查哪些字段已填满。
但似乎尚未在表单中设置该值。
我尝试使用选择器 valid
和getFormvalues
,但未更新最新的表单值更改。
请参阅此codesandbox。
如果我在表单组件的呈现中打印getFormvalues
,它会被更新,但我无法在那里处理表单。
那么在用户选择一个值后,如何在表格更新后处理表单?
答案 0 :(得分:0)
由于SimpleFormContainer
,您已经在connect
中接收到值。您不需要从SimpleFormContainer
到SimpleForm
的回调。您可以使用componentWillReceiveProps
中的SimpleFormContainer
来检查值的更新并执行所需的操作。
最终代码如下:-
class SimpleFormContainer extends React.Component {
componentWillReceiveProps(nextValues) {
if (this.props.formValues !== nextValues.formValues){
console.log(nextValues.formValues)
}
}
render() {
return (
<SimpleForm onSubmit={showResults}/>
)
}
}
SimpleFormContainer = connect(
state => ({
formValues: getFormValues('simple')(state)
}),
{ getFormValues }
)(SimpleFormContainer);