Реагируйте, как установить массив состояния с другим массивом?

#javascript #reactjs #react-select

Вопрос:

Я хотел бы установить массив только со значениями из другого массива. Должен ли я использовать для этого push?

ну, в этом случае я пытаюсь получить массив selectedOptions и установить массив selectedTags только со значением selectedOptions

но просто нажмите 1 значение из массива selectedOptions!

Итак, кто-нибудь, пожалуйста, может дать подсказку о том, как сопоставить массив и получить из него значения?

 handleChange = (selectedOptions) => {
    this.setState({ selectedOptions });
      let options = [];

    selectedOptions.map((v) => options.push(v.value));
            this.setState((state) => ({
                selectedTags: options

            }));

        

  }
 

Комментарии:

1. Вы хотите установить selectedTags значения selectedOptions или конкретное значение из selectedOptions ? Вы ссылаетесь в своем вопросе на оба случая.

2. @SinanYaman просто установите выбранные теги со значениями выбранных опций

Ответ №1:

Сопоставление по массиву

Вы можете использовать Array.map функцию:

 const data = [
{id: 1, value: '1'},
{id: 2, value: '2'},
{id: 3, value: '3'},
{id: 4, value: '4'},
{id: 5, value: '5'},
{id: 6, value: '6'},
{id: 7, value: '7'},
]

const onlyValues = data.map(d => d.value)
console.log(onlyValues) 

Добавление в массив с помощью спреда

 const data = [1,2,3,4,5,6,7,8,9,10]
const toBeAdded = 11

const newData = [...data, toBeAdded]
console.log(newData)

const toBeAddedArray = [11,12,13,14,15,16]
const newDataArray = [...data, ...toBeAddedArray]
console.log(newDataArray) 

Комментарии:

1. Привет, Синан, спасибо за ваш интерес, только одно сомнение, как установить другое состояние массива только с значениями?

2. Вы можете сделать selectedTags: selectedOptions.map(o => o.value) это внутри setState