Javascript 组件接收到React道具,但未在JSX中更新

Javascript 组件接收到React道具,但未在JSX中更新,javascript,reactjs,typescript,Javascript,Reactjs,Typescript,这是一个有趣的例子。下面是一段代码。这是一个纯功能组件,我正在传递一个对象,我们将通过props调用一些数据 组件第一次使用默认someData对象呈现时,将记录返回前的BASICINFO。”返回后的BASICINFO将使用默认的someData对象再次记录。当父组件的状态更新时,返回日志之前的BASICINFO显示更新的数据,但返回之后的日志BASICINFO没有像我预期的那样显示更新的道具。就好像它不知道道具的更新。有人知道这是什么原因吗 export function MyComponen

这是一个有趣的例子。下面是一段代码。这是一个纯功能组件,我正在传递一个对象,我们将通过props调用一些数据

组件第一次使用默认someData对象呈现时,将记录返回前的BASICINFO。”返回后的BASICINFO将使用默认的someData对象再次记录。当父组件的状态更新时,返回日志之前的BASICINFO显示更新的数据,但返回之后的日志BASICINFO没有像我预期的那样显示更新的道具。就好像它不知道道具的更新。有人知道这是什么原因吗

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>
  )
}
导出函数MyComponent({someData}:MyComponentProps){
log('BASICINFO BEFORE RETURN',someData.BASICINFO);
返回(
{console.log('BASICINFO AFTER RETURN',someData.BASICINFO)}

{someData.basicInfo.personalSummary}

) }
是否有可能因为显示的数据没有实际差异而组件没有重新渲染?ie:如果basicInfo.personalSummary更改,组件是否重新渲染


如果显示的数据正在更改,并且没有重新渲染,您确定状态没有发生变化吗?

是的,原来我是在变化状态。我在处理嵌套在几层深处的对象。最终使状态变得平坦,并保存了我真正需要的东西。一开始就应该这么做