繁体   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