Я поддерживаю код от других. В настоящее время Интернет использует response-select@1.3.0
.
И я должен передать данные бэкэнду, тип данных которого ограничен значением массива, например: ["1", "2", "3" ...]
. Даже массив, содержащий такие объекты, как: [{a:"1"}, {b:"2"}, {c:"3"} ...]
, не допускается.
Таким образом, используя способ реакции-выбора проходных данных, структура имеет вид
[
{ label: "one", value: "1" },
{ lable: "two", value: "2" },
{ label: "three", value: "3" },
// ...
]
Сейчас я передаю значение, которое я получил от реагирования-выбора, во временное место в состоянии и снова структурирую данные, когда пользователи нажимают кнопку отправки, однако кажется, что это недостаточно эффективно?
Ниже приведена простая версия реального кода:
import React, { Component } from 'react';
import Select from "react-select";
class App extends Component {
constructor(props) {
super(props);
this.state = {
tempAr: [ ],
selectedValues: [ ]
}
}
onChange(values) {
this.setState({values});
}
submit() {
const newValue = this.state.tempArr.map(i=>i.value)
this.setState({selectedValue:newValue})
}
render() {
const branch_list = [{label:"Taoyuan Branch", value:"001"},
{lable:"Pintung Branch", value:"002"},
{label:"Kaoshiung Branch", value:"003"} ...]
return (
<div className="App">
<Select
multi
options={branch_list}
onChange={onChange}
value={this.state.tempArr}
removeSelected={true}
hideSelectedOptions={false}
/>
</div>
);
}
}
export default App;
Есть ли какой-нибудь простой способ пропустить процесс реструктуризации данных?