【发布时间】:2021-09-18 22:34:40
【问题描述】:
我想让程序通过用户的选择改变表格内容。所以我把空数组放在useState中,像这样。
const [statInfo, setStatInfo] = useState([]);
并选择html代码:
<select
name="statSelect"
onChange={(e) => {
handleChange(e);
setStat();
}}>
<option value="0to60">무각 60</option>
<option value="1to60">1각 60</option>
<option value="2to60">2각 60</option>
</select>
当我选择选项时,数据将被更改。但我不知道如何使用 useState。 这些是数据
const stat = [
[11421, 1059, 782, "10%", "50%", "10%", "25%"],
[11992, 1112, 821, "15%", "55%", "20%", "30%"],
[10401, 1114, 1049, "20%", "30%", "35%", "25%"]
];
还有我的 React 代码:
async function setStat() {
console.log('calling');
if (stat === "무각 60") {
await setStatInfo(stat[0]);
console.log(statInfo);
} else if (stat === "1각 60") {
await setStatInfo(stat[1]);
console.log(statInfo);
} else {
await setStatInfo(stat[2]);
console.log(statInfo);
}
}
我尝试使用地图。但是我也不知道怎么用地图。
有没有每次改变整个数组的函数或方法?
【问题讨论】:
-
await setStatInfo(await什么都不做.. -
console.log(statInfo);statInfo 不会在下一行更改,它将在下一次渲染中更改。您可能需要阅读有关 React 渲染生命周期的更多信息。 -
如果你使用数组作为状态,你应该像这样改变它:
setStatInfo([...statInfo, newElement]) -
感谢您指出。我只是在修复它的路上!您的意思是,该值正确进入了 useState 但未反映在 console.log 中?
标签: javascript arrays reactjs react-hooks use-state