簡體   English   中英

為什么我的組件在更新后沒有重新渲染?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM