initialValues没有以redux形式加载

时间:2017-08-07 08:59:14

标签: react-native jsx redux-form

我可能使用了这个错误,但我试图使用一个不能正常工作的initialValues来加载一个redux表单。我有一个容器组件,它呈现一个表单:

class ProductScreen extends Component {
  render() {
    return (
      <ProductForm {...this.props} {...this.state} />
    )
  }
}

const mapStateToProps = (state) => {
  return {
    initialValues: {name: 'Ferrari'}
  }
}

export default connect(mapStateToProps, mapDispatchToProps)(ProductScreen)

对于ProductForm组件,render()方法包含一个加载简单组件的Field。请注意,它是名为name的单个字段。我通常的方式初始化reduxForm,但是当屏幕加载时,表单字段不会被预期的&#34; Ferrari&#34;填充。值:

// importing functions from redux-form
import { Field, reduxForm } from 'redux-form/immutable'

// inside the render() function
<Field component={renderInput} name='name' ref='name' placeholder='Product name' />

const ProductForm = reduxForm({
  form: 'createProduct',
  enableReinitialize: true
})(ProductFormComponent)

const renderInput = ({input, ...inputProps}) => {
  return (
    <TextInput {...inputProps} {...input} />)
}

在React原生调试器中,如果我调出renderInput功能,我可以看到&#39;法拉利&#39;值inputProps.meta.initial但不在input.value

1 个答案:

答案 0 :(得分:1)

我认为你是在错误的地方归还它。 请尝试以下代码段:

const ProductForm = reduxForm({
  form: 'createProduct',
  initialValues: {name: 'Ferrari'},
  enableReinitialize: true
})(ProductFormComponent)