首页 > 解决方案 > 如何将选择的任何值添加到数组中?

问题描述

我有这个自动完成:

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}
              />

而且我想将选择的任何值添加到数组中......我推送但每次我选择的值都添加到它。并且以前的值被删除。有谁知道我应该做什么?

标签: reactjsreact-hooksautocompletematerial-ui

解决方案


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

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

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

推荐阅读