React multi-select не может передать выбранные данные, вместо этого, передав все данные - PullRequest
0 голосов
/ 26 сентября 2019

Я использую response-multiselect с помощью @ kenshooui / react-multi-select, и в DOC пример является компонентом на основе классов, но я использую функционал, основанный на моем коде JS.Код для множественного выбора:

 <MultiSelect
  items={form.states}
  selectedItems={form.selectedItems}
  onChange={handleChange} />

В этом у меня проблема в функции handleChange.Я попытался изменить функцию с класса на класс, основанный на функции, но ее функция не работает в документах:

    this.setState({ selectedItems });
  }

В этой функции selectedItems состояние изменяется со всеми элементами, выбранными ввнешний интерфейс.Я попробовал вот что:

const handleChange = (selectedItems)=> {
        setForm.selectedItems=selectedItems;
        console.log(selectedItems, "selectedItemsssssss");

    };

Между тем у меня есть функция handleInputChange:

const handleInputChange = (event) => {
        const target = event.target;
        const value = target.type === 'checkbox' ? target.checked : target.value;
        const name = target.name;

        setForm({
            ...form,
            [name]: value,

        });
    };

Пожалуйста, помогите мне с этим.Как изменить состояние selectedItems и отправить данные в бэкэнд.Я новичок, чтобы реагировать.

1 Ответ

0 голосов
/ 26 сентября 2019

setForm - это функция установки, возвращаемая из useState, которая должна принять ваше новое состояние.В вашем случае вы пытаетесь присвоить свойству selectedItems эту функцию:

const handleChange = (selectedItems) => {
  setForm.selectedItems=selectedItems;
};

Вместо этого следует вызвать функцию с обновленным состоянием:

const handleChange = selectedItems => {
  setForm({ ...form, selectedItems });
};

Codesandbox

...