Может ли отреагировать-выбрать передачу данных о вложенности? - PullRequest
0 голосов
/ 21 мая 2019

Я поддерживаю код от других. В настоящее время Интернет использует 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;

Есть ли какой-нибудь простой способ пропустить процесс реструктуризации данных?

...