如何将选择的任何值添加到数组?

how to add whatever value is selected to an array?

我有这个自动完成功能:

var arr=[];
    const changeHandler = (value) => {
      
        // arr.push(value);
        // console.log("arr",arr)
        setItem(arr)
      };
         <Autocomplete
                getOptionLabel={props.getOptionLabel}
                options={options}
                autoHighlight
                onChange={changeHandler}
                renderOption={(option) => (
                  <React.Fragment>
                    {option.persianCode} - {option.title}
                  </React.Fragment>
                )}
                label={props.label}
                placeholder={props.placeholder}
                inputLabelClassName={classes.instrumentLabel}
              />

而且我想将 selected 的任何值添加到数组中...我推送但是每次将 select 的值添加到 it.And 之前的值是deleted.Does有人知道我该怎么做吗?

看起来好像 var arr=[]; 在函数体中,所以它在每个渲染周期都重新声明。推入它只会有一个值。

如果您想更新状态,请使用已更新的功能状态来附加新值。

const changeHandler = (value) => {
  setItem(items => [...items, value]);
};

当您推送到作为数组的状态变量时,您并没有更改实际对象,并且 React 不会重新呈现。 Read more

您需要做的是,进行深拷贝并在该拷贝上进行更改:

const changeHandler = value => setItem(arr => [...arr, value])