2016-09-01 6 views
1

私は、選択された項目がオブジェクトである場合に、2つのテキスト入力と1つの選択を提出するためにredux形式を作成しました。しかし、..私は正しいオブジェクトを受け取りますが、参照のいくつかの種類「[オブジェクトのオブジェクト]」はありません選択内のRedux Formsオブジェクト

を提出した後、選択のためのレンダリング:フォーム自体に

const renderSelectField = ({input, options, meta: {touched, error}}) => (
    <select className='form-control' {...input}> 
    <option></option> 
    {options.map(option => 
    <option key={option.id} value={option}>{option.name}</option> 
    )} 
    </select> 
) 

<div className='form-group'> 
    <label>Category</label> 
    <div> 
    <Field name='category' component={renderSelectField} options={this.props.categories.categories}/> 
    </div> 
</div> 

私の親コンポーネントでハンドラを提出:

handleSubmit(values, dispatch) { 
    var asset = { 
     name: values['name'], 
     vendor: values['vendor'], 
     version: values['version'], 
     technology: values['technology'], 
     category: values['category'] 
    } 

    return dispatch(addAsset(asset)) 
     .then((result) => { 
     if(result.type == ADD_ASSET_FAILURE){ 
     } 
     if(result.type == ADD_ASSET_SUCCESS){ 
      dispatch(routerActions.push('/assets')) 
     } 
     }) 
    } 

そして、何に提出されている:任意の助けを事前に

Error

感謝を。

答えて

0

optionではobjectを値として使用できません。文字列でなければなりません。 このように:

<option key={option.id} value={option.id}>{option.name}</option> 
+0

申し訳ありません。問題は、私が到達したいオブジェクトにアクセスできない、またはアクセスできないことです。私が関数getCategoryByIdを使うと、私は常にset formをfalseにしてしまいます。 – Matthias

+0

'values ['category']'から得られるidでソース配列内のオブジェクトを見つける必要があります。配列の 'find'メソッドを試してください。 – Maxx

関連する問題