2017-08-07 5 views
0

おそらくこの間違った使い方ですが、initialValuesをロードするreduxフォームを取得しようとしていますが、これは動作しません。 render()方法は、単純なコンポーネントをロードするフィールドを含むProductFormコンポーネントの場合initialValuesがredux-formでロードされていません

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

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

export default connect(mapStateToProps, mapDispatchToProps)(ProductScreen) 

:私は、フォームをレンダリングするコンテナコンポーネントを持っています。名前の単一フィールドはnameであることに注意してください。私はrenderInput機能を慰める場合リアクトネイティブデバッガで

// 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} />) 
} 

:私はreduxFormに通常の方法を初期化していますが、画面がロードされたときに、フォームフィールドが期待される「フェラーリ」の値が移入されていませんinputProps.meta.initialで 'Ferrari'の値を見ることができますが、input.value

答えて

1

あなたは間違った場所でそれを返すと思います。 次のコードスニペットを試してください:

const ProductForm = reduxForm({ 
    form: 'createProduct', 
    initialValues: {name: 'Ferrari'}, 
    enableReinitialize: true 
})(ProductFormComponent) 
関連する問題