首页 > 解决方案 > Redux-form:输入值尚未设置 onChange of input

问题描述

当用户从选择下拉列表中选择一个值时,onChange调用父容器中的一个函数。在那里我需要检查哪些字段已填写。

但似乎该值尚未在表单中设置。我曾尝试使用选择器 validgetFormvalues,但它们没有随着最新的表单值更改而更新。

请参阅此 代码框

如果我在表单组件的渲染中打印getFormvalues,它会更新,但我无法在那里处理表单。

那么在用户选择一个值后如何处理表单,表单在哪里更新?

标签: redux-form

解决方案


您已经在SimpleFormContainerdue to中收到值connect。您不需要来自SimpleFormContainerto的回调SimpleForm。您可以使用componentWillReceivePropsinSimpleFormContainer检查值更新并做任何您想做的事情。

最终代码可能如下所示:-

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);

工作示例


推荐阅读