![](/img/trans.png)
[英]In React Hook, how can I change specific value of useState array?
[英]How do I change the Heroes array, to the res array? I am using the react useState hook. This has worked on previous projects but not here
const [Heroes, setHeroes] = useState([])
useEffect(() => {
API.findFavorites().then((res) => {
console.log(res)
setHeroes([...Heroes, res]);
console.log(Heroes)
})
}, []);
我正在嘗試將 Heroes 的狀態設置為 res,以便我可以在 useEffect 中使用它。 但它沒有設置,我在網上嘗試了很多不同的解決方案,但都沒有奏效! API.findFavorites 返回一個類似於 [{...}, {...}] 的響應。 當我 console.log(Heroes) 它記錄為 [],而不是 [{...}, {...}]。
狀態更新可能是異步的,因此不能保證您可以在設置后立即訪問它。
這也適用於 useState 鈎子。 設置狀態不會立即更新狀態。 相反,它會將更新操作排入隊列。
所以你需要有第二個 useEffect 和 Heroes 依賴。
const [Heroes, setHeroes] = useState([]);
useEffect(() => {
API.findFavorites().then(res => {
console.log(res);
setHeroes([...Heroes, res]);
});
}, []);
useEffect(() => {
console.log(Heroes);
}, [Heroes]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.