Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/ant/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何更新嵌套数组(多反应选择)_Javascript_Reactjs_Ecmascript 6_React Select - Fatal编程技术网

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

Javascript 如何更新嵌套数组(多反应选择),javascript,reactjs,ecmascript-6,react-select,Javascript,Reactjs,Ecmascript 6,React Select,我正在创建一个应用程序,我需要将选定的值存储在嵌套在对象(下面的类别)中的数组中。该州看起来: state = { data: { user: "", title: "", text: "", category: [], // should store values }, updateNoteId: null, } 在我的render()中,我有以下形式: <form onSubmit={this.s

我正在创建一个应用程序,我需要将选定的值存储在嵌套在对象(下面的类别)中的数组中。该州看起来:

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>

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

显示您作为一个应用程序所做的尝试,并解释您的结果。感谢您的回复,但它不起作用。控制台显示未定义的值和选择似乎也工作不正确。。。我已准备好codesandbox->()抱歉,我不知道您正在使用React Select。工作代码沙盒-我还更新了我的答案
handleMultiChange(selectedOptions) {
  this.setState({ 
    data: {
      ...this.state.data, 
      categories: selectedOptions
    }
  })
}
handleMultiChange(selectedOptions) {
  this.setState({ 
    data: {
      ...this.state.data, 
      categories: selectedOptions
    }
  })
}