【问题标题】:Why is a Component Re-Rendering done when changing the value of the props sent to child Component (react js)?为什么在更改发送给子组件(react js)的道具的值时会进行组件重新渲染?
【发布时间】:2022-01-25 03:55:15
【问题描述】:

我在理解 React 中的重新渲染时遇到问题 我在文档中读到,当状态发生变化时会出现渲染器 我在这篇文章中也看到(https://blog.logrocket.com/a-guide-to-usestate-in-react-ecb9952e406c/)当我将 props 传递给另一个组件,然后在 useEffect 之外接收带有弹道的 rubes 时,当 props 的值发生变化时,变化不会反映在接收道具的组件。 但是当props的值发生变化时,在普通变量中接收到props的值时,它会执行重新渲染并立即反映变化 看这个例子https://codesandbox.io/s/blissful-chatelet-xxb34?file=/src/App.js>> 请帮我解决这个问题,谢谢

【问题讨论】:

  • 对不起,你有什么问题?我根本无法遵循这一点。 React 模型非常简单:如果通过 this.setState 或从 useState 返回的 setter 更新道具或状态,则组件将重新渲染。即使这些没有发生,它也可能会重新渲染,但它保证在其中一种情况下发生。我不知道你在哪里偏离了轨道。你能澄清你的问题吗?也许至少有一些段落中断?

标签: javascript reactjs react-hooks


【解决方案1】:

组件何时重新渲染

  1. 当其任何状态的值发生变化时(类或功能组件)
  2. 当 Parent 发送的 props 值发生变化时(功能组件类)。

所以,这就是重新渲染的基本概念!

例外情况

您可能会决定,如果父级发送的道具未在您的组件中使用,在这种情况下,您可能会决定将您的组件设置为PURE COMPONENT,只有在这种情况下,道具的更改才会“ t 重新渲染您的子组件!

另请阅读:Why React's PureComponent is recommended to have all its children "pure"

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-04
    • 2020-12-24
    • 1970-01-01
    相关资源
    最近更新 更多