如何更新嵌套数组(多反应选择)

时间:2018-11-08 17:03:46

标签: javascript reactjs ecmascript-6 react-select

我正在创建一个应用,我需要在其中将选定的值存储在嵌套在对象中的数组中(以下类别)。状态如下:

state = {
    data: {
        user: "",
        title: "",
        text: "",
        category: [], // should store values
    },
    updateNoteId: null,
}

在我的render()中,我具有以下形式:

<form onSubmit={this.submitNote}>
    <Select
        name="category"
        value={this.state.data.category}
        options={options}
        onChange={this.handleMultiChange}
        multi
    />
    <input type="submit" value="Save" />
</form>

选项是:

const options = [
    { value: 1, label: 'one' },
    { value: 2, label: 'two' },
    { value: 3, label: 'three' }
]

所以问题是this.handleMultiChange函数应该如何工作。 Category []需要保留在Select中选择的所有值,React是一个select-select组件(例如,当选择“ 1”和“ 3”时,应为category = [1,3])。我尝试了多种组合,但到目前为止,它们都没有奏效。我更喜欢在没有任何外部库/帮助程序的情况下使用ES6。

1 个答案:

答案 0 :(得分:2)

handleMultiChange(selectedOptions) {
  this.setState({ 
    data: {
      ...this.state.data, 
      categories: selectedOptions
    }
  })
}
相关问题