点击按钮,我正试图将forEach循环用于我的use状态钩子,它最初是一个数组。
我的钩子是:
const [regrowsData, setRegrowsData] = useState([])
我的按钮代码是:
<Button variant="contained" color="primary" onClick={() => regenrateRows()}>Add Row</Button>
更改useSate钩子数据的函数:
const regenrateRows = () => {
var newArr = regrowsData;
newArr.push('newvalue');
setRegrowsData(newArr);
}
函数,我想在其上为Each重新生成状态数组。
var getRows = () => {
regrowsData.forEach((row) => {
alert(row)
})
}
问题是状态更改,没有出现警报消息。
这可能是因为您使用的是可变数据。尝试将regenarateRows
函数更改为:
const regenrateRows = () => {
setRegrowsData([...regrowsData, 'newvalue']);
}
您正在更新对状态的相同引用,这就是react无法找到更改的原因。
试试这个
const regenrateRows = () => {
regrowsData.push('newvalue');
setRegrowsData([...regrowsData]);
}