簡體   English   中英

反應組件收到的道具,但在JSX中不更新

[英]React props received by component but not updating in JSX

因此,這是一個有趣的過程。 這是代碼片段。 這是一個純粹的功能組件,我正在傳遞一個對象,我們將通過props調用someData。

首次使用默認的someData對象渲染組件時,將記錄BASICINFO RETURN之前的返回值。 然后,使用默認的someData對象再次記錄'BASICINFO AFTER RETURN'。 當父組件的狀態更新時,BASICINFO RETURN日志顯示更新后的數據,但是我沒有得到BASICINFO AFTER RETURN日志,顯示更新后的道具。 好像它沒有意識到道具更新。 有人知道是什么原因造成的嗎?

export function MyComponent({someData}: MyComponentProps) {
  console.log('BASICINFO BEFORE RETURN', someData.basicInfo);
  return (
    <Flex>
      {console.log('BASICINFO AFTER RETURN', someData.basicInfo)}
      <Box>
        <p>
          {someData.basicInfo.personalSummary}
        </p>
      </Box>
  )
}

是否有可能因為顯示的數據實際上沒有不同而沒有重新渲染組件? 即:如果basicInfo.personalSummary更改,組件是否會重新渲染?

如果顯示的數據正在更改並且沒有重新呈現,您確定狀態沒有發生突變嗎?

是的,事實證明我在改變狀態。 我正在處理嵌套在幾層深處的對象。 最終弄平了狀態,只是保存了我真正需要的東西。 首先應該做到這一點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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