我面臨useState與陣列反應的問題,這是我的teamMembers狀態宣告:
const [teamMembers, setTeam] = useState();
...我正在填寫表格,然后單擊按鈕更新teamMembers狀態。以下代碼位于處理程式中:
let newTeam = teamMembers || ['Tony Stark'];
console.log(newTeam); // here it is giving me Tony Stark
setTeam(newTeam);
我曾經useEffect看到更新:
useEffect(() => {
console.log(teamMembers); // here it is giving me empty array([])
})
我缺少什么?
uj5u.com熱心網友回復:
應該先設定為空陣列:
const [teamMembers, setTeam] = useState([])
然后:
useEffect(() => {
console.log(teamMembers)
}, [teamMembers])
如果陣列發生變化,useEffect將記錄一個空陣列。
認為你正在嘗試做:
const [teamMembers, setTeam] = useState([])
setTeam([...teamMembers, 'Tony stark'])
useEffect(() => {
console.log(teamMembers)
}, [teamMembers])
uj5u.com熱心網友回復:
第三塊中的更正可能有效:
useEffect(() => {
console.log(teamMembers); // here it is giving me empty array([])
},[teamMembers]);
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/361808.html
標籤:javascript 数组 反应 反应钩子 使用状态
上一篇:c 從函式中回傳兩個陣列
