React multi-select 无法传递 selected 数据,而是传递所有数据

React multi-select cannot pass selected data, Instead passing all the data

我正在使用 @kenshooui/react-multi-select 的 react-multiselect,在文档中,示例是基于 class 的组件,但我在我的 JS 代码中使用基于函数. multi-select 的代码是

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

我在函数 handleChange 中遇到了问题。我试图将功能从 class based 更改为 function based 但它不起作用 文档中的函数是:

    this.setState({ selectedItems });
  }

在此函数中,selectedItems 的状态随着在前端 select 编辑的所有项目而改变。 我尝试过的是:

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 的状态并将数据发送到后端。我是新来的反应。

setForm 是从 useState 返回的 setter 函数,它应该采用您的新状态。在您的情况下,您正在尝试将 属性 selectedItems 分配给此函数:

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

您应该改为使用更新后的状态调用该函数:

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

Codesandbox