Javascript 如何修复过多的重新渲染。React限制渲染的数量以防止无限循环

Javascript 如何修复过多的重新渲染。React限制渲染的数量以防止无限循环,javascript,reactjs,firebase,firebase-realtime-database,firebase-authentication,Javascript,Reactjs,Firebase,Firebase Realtime Database,Firebase Authentication,我是一个新的反应,最近我陷入了这个问题,我不知道如何解决它。 它说太多的重新渲染。React限制渲染的数量以防止无限循环。在内特环路怎么样?这是因为价值吗 从React导入React; 从./firebase导入火; 从firebase导入firebase 从react导入{useState} const UserPage={match}=>{ const[user,setUser]=useStatenull const{params:{userId}}=match; var用户名; cons

我是一个新的反应,最近我陷入了这个问题,我不知道如何解决它。 它说太多的重新渲染。React限制渲染的数量以防止无限循环。在内特环路怎么样?这是因为价值吗

从React导入React; 从./firebase导入火; 从firebase导入firebase 从react导入{useState} const UserPage={match}=>{ const[user,setUser]=useStatenull const{params:{userId}}=match; var用户名; console.loguserId firebase.database.refuers/+userId+/praivate/login-credentials.onvalue,快照=>{ setUsersnapshot.val.userName } 回来 嘿{user} }
导出默认用户页您应该在生命周期方法中执行Firebase staff。在使用Functional组件时,您可以使用useEffect挂钩:

我不知道你想实现什么,但是在你的{user}内部,我认为{user}是一个对象,所以如果你想访问一个特定的属性,你可以做一些类似{user.attributeName}的事情


我希望这有助于

你应该在一个生命周期的方法中完成你的Firebase员工。当你使用Functional组件时,你可以使用useEffect挂钩:

我不知道你想实现什么,但是在你的{user}内部,我认为{user}是一个对象,所以如果你想访问一个特定的属性,你可以做一些类似{user.attributeName}的事情


我希望它有助于

每次设置用户时,组件都会重新加载。。。导致firebase调用再次发生。。。导致调用setUser。使用useffect=>doFirebaseCall,[]包装您的firebase呼叫。@spender谢谢!每次设置用户时,组件将重新加载。。。导致firebase调用再次发生。。。导致调用setUser。使用useffect=>doFirebaseCall,[]包装您的firebase呼叫。@spender谢谢!我真的应该停止在评论中给出答案;我真的应该停止在评论中给出答案;
import React from "react";
import fire from "./firebase";
import firebase from "firebase"
import { useState } from "react"

    
const UserPage = ({ match }) => {
    const [user, setUser] = useState(null)
    const { params: { userId } } = match;

    useEffect(()=>{
        //Put your Firebase staff here
     },[])
    
    return(
        <>
        <h1>Hey {user}</h1>
        </>
    )
    }
   
export default UserPage