相关文章推荐
伤情的脸盆  ·  react-router ...·  2 天前    · 
还单身的蘑菇  ·  react ...·  2 天前    · 
严肃的跑步鞋  ·  React 使用 Proxy ...·  昨天    · 
纯真的领结  ·  npm ...·  7 小时前    · 
冷冷的盒饭  ·  Plugin [id: ...·  9 月前    · 
豪气的小摩托  ·  Troubleshoot the ...·  1 年前    · 
愤怒的苹果  ·  golang aws-sdk-go 之 ...·  1 年前    · 

参考链接: https://www.jianshu.com/p/d62bbb598360

我的问题出在哪里呢?

第一条,我的子组件并没有直接使用props,而是先把props转换为子组件的state,然后使用了state,因此导致了子组件不更新。

为什么?react关于state的规定,就是说state是本组件自己产生和管理的状态,props得来的数据并不是自己的,不适合作为state进行管理,因此需要用到props,直接使用即可,不需要画蛇添足,将它再转换为state

今天在写代码时,发现父组件中的state更新了,传递给子组件,但是子组件并没有更新,带着疑惑,上网查了查,发现了问题所在。先看看网上怎么说的:参考链接:https://www.jianshu.com/p/d62bbb598360我的问题出在哪里呢?第一条,我的子组件并没有直接使用props,而是先把props转换为子组件的state,然后使用了state,因此导致了子组件不更新。为什么?react关于state的规定,就是说state是本组件自己产生和管理的状态,props得来的数.
主要问题是 父 组件 通过props 传值后 组件 不会重新 渲染 <MetalTypeInfo id={this.state.id} /> //id 修改后不会重新 渲染 <MetalTypeInfo> 构造方法接收props 放入state中 constructor(props: defaultProps) { super(props); this.state = { data: [], // 数据 Read/index. js x父 组件 import React , { useState } from ' react '; import List from './components/List'; import Card from './components/Card'; import './index.scss'; export default function Read(pros) { console.lo
React 中,当父 组件 重新 渲染 时, 组件 也可能会重新 渲染 。这是因为 React 中的 组件 树是由父 组件 组件 组成的。当父 组件 重新 渲染 时, React 会比较新旧虚拟 DOM 树之间的差异,找出需要更新的节点,然后重新 渲染 这些节点,包括 组件 中的节点。如果 组件 的 props 或 state 发生了改变,也会触发 组件 重新 渲染 。 但是, React 会尽量减少不必要的重新 渲染 ,即使父 组件 重新 渲染 了,如果它的 props 和 state 没有变化, 组件 也不会重新 渲染 。同时,可以通过使用 React .memo 或 shouldComponentUpdate 生命周期钩 函数来避免不必要的 组件 重新 渲染
Maximum update depth exceeded. This can happen when a component repeatedly calls setState inside com