![](/img/trans.png)
[英]React child component seems not to be rendered when parent state is updated?
[英]React state updated in child component but not in parent
我知道更改 state 是異步的,需要使用以前的 state。 但是最近我遇到了一個奇怪的問題。 修改 state 后,更改在子組件(實際上是孫子組件)中可見,但在回調到父組件期間,更改在那里不可見。 這是偽代碼
const Parent = () => {
const [items, setItems] = React.useState([]);
... some method
const changeState = (...) => {
setItems( items => [...items, {id: 100, value: "Test"}]);
}
const callback = (id) => {
const v = items.find( i => i.id == id );
// ERROR: v is undefined
}
return(<Child items={items} callback={callback} />);
}
const Child = ({items, callback) => {
...
const onClick = () => {
callback(100);
}
...
}
場景如下:
任何想法在哪里尋找問題的根源?
我完全同意國際象棋
在我看來,您的代碼似乎是正確的。 正如您所指出的,父組件在某些時候必須包含有效items
state。 否則它無法在子組件中更新它。
我想到的一件事:難道setItems
function 是從其他地方調用的嗎? 這可以解釋奇怪的行為。
我認為更完整的代碼示例可能有助於深入了解這一點。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.