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