在我的应用程序中,在React中我遇到下一种情况:
我输入的内容是,当我单击save
时会添加不同的值。输入的值从字符串转换为数组。
因此,第一次添加文本时,我单击了保存,并且数组中有1个值。
第二次,我添加另一个文本,然后单击“保存”,第一个值将每秒更改一次。
我在这种状态下存储值:
const [value, setValue] = useState([here comes my value]);
我想一个接一个地连接值,而我做到了:
useEffect(()=> {
setAllValues([...value, value])
}, [value])
..但这不起作用。如何将所有值存储在一个数组中?
答案 0 :(得分:3)
使用setState
中的functional form:
setAllValues(prevValue => [...prevValue, newValue])
答案 1 :(得分:1)
要执行该操作,您需要两个状态
// one state for array
const [valueArray, setValueArray] = useState([here comes my value]);
// and another state for string
const [value, setValue] = useState('');
// then onSave function
const onSave = () => {
setValueArray([ ...valueArray, value ]);
setValue('');
}