[英]Why is my component not re-rendering after updating it?
我正在嘗試更改我的對象數組的 state,它確實更改了 state,但我的組件沒有重新渲染。 這是為什么?
useEffect(() => {
if(data && data.rows) {
data.rows.forEach(async (elem) => {
const row = await axios.get(url);
elem.members= row.data.length;
})
}
}, [data])
僅當您設置 state 時組件才會重新渲染,無論它是基於 class 的組件還是掛鈎
1.class 基於組件this.setState()
2.鈎子setLen()
const [len, setLen] = React.useState(0);
useEffect(() => {
if(data && data.rows) {
data.rows.forEach(async (elem) => {
const row = await axios.get(url);
setLen(row.data.length);
})
}
}, [data])
對於要重新渲染的組件,必須更新 state。 您需要執行setState
才能更新組件。 此外,如果您從 props 獲取更新的值,那么您應該考慮使用 react 的componentDidUpdate
生命周期鈎子。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.