Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

使用Bubble.list 渲染消息时,历史消息内部也在 reRender #402

Open
ch-liuzhide opened this issue Dec 24, 2024 · 2 comments
Open
Assignees
Labels
bug Something isn't working

Comments

@ch-liuzhide
Copy link

ch-liuzhide commented Dec 24, 2024

重现步骤

No response

当前行为

发送消息后,除当前消息渲染器之外,历史消息的自定义渲染器也在更新。

image

预期行为

历史消息如果内容没有变化,不应该更新

上下文

No response

版本

1.0.3

您在哪些浏览器上遇到了这个问题?

No response

@ch-liuzhide ch-liuzhide added the bug Something isn't working label Dec 24, 2024
Copy link

您提到在使用 Bubble.list 渲染消息时,历史消息也在重新渲染。根据您的描述,您希望在发送新消息时,历史消息如果内容没有变化,不应该更新。

这种行为通常可能是由于组件的状态或属性变化导致的。以下是一些可能的解决方案:

  1. 检查组件的 key 属性:确保每个消息组件都有一个唯一的 key 属性,这样可以帮助 React 确定哪些组件需要更新。

  2. 使用 React.memo:如果您的消息组件是函数组件,可以使用 React.memo 来避免不必要的重新渲染。React.memo 会对组件的 props 进行浅比较,如果没有变化,则不会重新渲染组件。

  3. 优化状态管理:确保只有必要的状态变化才会触发组件的重新渲染。可以考虑使用 useReduceruseState 来更精细地控制状态更新。

  4. 检查父组件的渲染逻辑:有时候父组件的重新渲染会导致子组件的重新渲染。确保父组件的状态或属性变化不会不必要地触发子组件的更新。

如果这些建议没有解决您的问题,可能需要更详细的代码示例来进一步诊断问题。

如果您需要进一步的帮助,请随时告诉我!

🪧 Tips For further assistance, please describe your question in the comments and @petercat-assistant to start a conversation with me.

@YumoImer
Copy link
Collaborator

感谢反馈,这个性能优化我先认领。

@YumoImer YumoImer self-assigned this Dec 24, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants