首页 > 其他分享 >react错误:Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infini

react错误:Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infini

时间:2024-02-27 10:56:29浏览次数:17  
标签:react userMessage limits React renders useEffect 页面

react错误:

Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infinite loop.

 

信铁寒胜:

更改页面数据时未放到useEffect方法内,导致页面一直在刷新。

 

 

原因1:

错误写法:

<div className='article_item' onClick={toArticleDetail}>test</div>

正确写法:

//注: 函数必须是调用函数,而不是只写函数名,即里面要写为:toArticleDetail() 【函数名后面必须带上括号】
<div className='article_item' onClick={()=>{toArticleDetail()}}>test</div>

  

原因2:

更改页面数据时未放到useEffect方法内,导致页面一直在刷新。

错误写法:

import React, { Suspense, useState, useEffect } from "react";
import { connect, useSelector } from "react-redux";
function App() {
	let userMessage = useSelector((state: any) => state.userMessage);
	let [isLogin, setIsLogin] = useState(false);
	if (userMessage.userName && userMessage.userId) {
		setIsLogin(true);  // 该处数据更新造成页面不断刷新
	}
	return (
		<div>{isLogin}</div>
	);
}

  正确写法:

import React, { Suspense, useState, useEffect } from "react";
import { connect, useSelector } from "react-redux";
function App() {
	let userMessage = useSelector((state: any) => state.userMessage);
	let [isLogin, setIsLogin] = useState(false);
	//使用useEffect(()=>{},[])
	//页面只更新一次
	useEffect(() => {
		if (userMessage.userName && userMessage.userId) {
			setIsLogin(true);
		}
	}, []);
	return (
		<div>{isLogin}</div>
	);
}

  

参考:

react错误:Uncaught Error: Too many re-renders. React limits the number of renders to prevent an infini-CSDN博客

标签:react,userMessage,limits,React,renders,useEffect,页面
From: https://www.cnblogs.com/wwssgg/p/18036424

相关文章

  • react ProTable树默认只展示第一层和第二层
    要在AntDesignPro中的ProTable组件中默认展开第一层和第二层,您可以使用expandable的defaultExpandAllRows选项结合expandedRowKeys来实现。以下是一个示例代码,演示如何在AntDesignPro中的ProTable组件中默认展示第一层和第二层:import{ProTable}from'@an......
  • 利用IO复用技术Epoll与线程池实现多线程的Reactor高并发模型
    Reactor模型是一种常见的高并发设计模式,特别是在网络编程中。在Reactor模型中,一个或多个输入同时传递给一个或多个服务处理程序。服务处理程序对输入进行处理,然后将结果传递给相应的输出处理程序。使用IO复用技术(如epoll)和线程池,可以实现多线程的Reactor高并发模型。下面是一个简......
  • 使用`react-hooks写法`对`antd的Upload.Dragger上传组件`进行二次封装
    使用react-hooks写法对antd的Upload.Dragger上传组件进行二次封装预期对antd的Upload.Dragger组件进行二次封装,让它的使用方法和Upload.Dragger组件保持一致。让该组件能自动把数据放到对应后端服务器中。让该组件能的value值如果没上传,为数组形式。如果没有值,为空数组。如......
  • 依赖注入(Dependency Injection, DI)是一种设计模式,例如,在React中,父组件可以通过props向
    依赖注入renderprops其实就是React世界中的“依赖注入”(DependencyInjection)。所谓依赖注入,指的是解决这样一个问题:逻辑A依赖于逻辑B,如果让A直接依赖于B,当然可行,但是A就没法做得通用了。依赖注入就是把B的逻辑以函数形式传递给A,A和B之间只需要对这个函数......
  • PropTypes 是 React 提供的一个用于类型检查的库 若使用了ts,还需要使用PropTypes吗
    在使用了TypeScript的React项目中,由于TypeScript已经提供了静态类型检查的能力,通常不需要再额外使用prop-types库进行运行时的类型检查。TypeScript在编译阶段就能通过类型注解确保组件之间的props类型正确无误,这有助于在开发阶段就发现类型不匹配的问题。而prop-ty......
  • react生命周期
    1.类组件生命周期以下是React类组件的全部生命周期方法,按照调用顺序排列:constructor(props)用途:组件的构造函数,在组件实例化时调用,用于初始化状态和绑定方法。staticgetDerivedStateFromProps(props,state)用途:在组件实例化、接收新的属性(props)或调用setState方法......
  • react类组件和函数组件的区别
    1.类组件importTarofrom'@tarojs/taro';import{Component,useState}from'react'classClasstestextendsComponent{constructor(props){super(props);this.state={count:0};}//组件挂载到DOM后立即调用,也就是在组件的......
  • Reactive UI 包的使用 [观察者模式]
     1ReactiveUI原版说明包---------  |一个高级的、可组合的、反应式的模型-视图-视图模型框架(reactiveui.net)   2ReactiveUI具体分析拆解的笔记--------- ReactiveUI使用笔记,教程总结–CodeQing3ReactiveX对于具体的关键字分析 ----------ReactiveX-随笔分......
  • React18 之 Suspense
    我们是袋鼠云数栈UED团队,致力于打造优秀的一站式数据中台产品。我们始终保持工匠精神,探索前端道路,为社区积累并传播经验价值。本文作者:佳岚SuspenseSuspense组件我们并不陌生,中文名可以理解为暂停or悬停 ,在React16中我们通常在路由懒加载中配合Lazy组件一起使用......
  • React
    React和Vue对比React将一切视为函数。组件作为一个函数,返回JSX进行构建。React高度自定义化,特别灵活。Vue相对将内容固定,不需要太多的自定义,开箱即用的感觉。可以将React比喻成手动档,Vue比喻成自动档。Vue与React相比,Vue2的选项式确实会让框架变得死板,但是Vue3组合式增强了函......