【问题标题】:Redux Forms object in select选择中的 Redux Forms 对象
【发布时间】:2016-09-01 16:03:50
【问题描述】:

我创建了一个 redux 表单,我想在其中提交几个文本输入和一个选择,其中所选项目是一个对象。但是,提交后我没有收到正确的对象,而是某种引用 '[object object]' ..

为选择渲染:

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

以及提交的内容:

提前感谢您的帮助。

【问题讨论】:

    标签: javascript reactjs redux-form


    【解决方案1】:

    您不能在option 中使用对象作为值。它必须是字符串。 像这样:

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

    【讨论】:

    • 好吧,我试过了。问题是我无法到达或访问我想要的对象。如果我使用 getCategoryById 函数,我总是将 set form 提交为 false。
    • 您需要通过 id 在源数组中查找对象,您将从values['category'] 获得。尝试数组的方法find
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-12-29
    • 2021-11-29
    • 2018-11-20
    • 1970-01-01
    • 1970-01-01
    • 2020-11-08
    • 2013-11-25
    相关资源
    最近更新 更多