gpt4 book ai didi

javascript - 我怎样才能调用该函数一次?

转载 作者:行者123 更新时间:2023-12-02 17:59:11 25 4
gpt4 key购买 nike

我有一个 React Native 项目,我需要实时从 Firebase 数据库读取数据。我尝试:

const [numberTrains, setNumberTrains] = useState(0)
function Read(){
const starCountRef = ref(db, 'users/' + user.localId);
onValue(starCountRef, (snapshot) => {
const data = snapshot.val();
setNumberTrains(data.countTrains);
});
}
Read()
console.log(numberTrains)

但它抛出异常:错误:重新渲染次数过多。React 限制渲染次数以防止无限循环。输出如下所示:

 LOG  0
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1
LOG 1

如何只读取numberTrain中的数据一次?

最佳答案

使用useEffect

const [numberTrains, setNumberTrains] = useState(0)

function Read(){
const starCountRef = ref(db, 'users/' + user.localId);
onValue(starCountRef, (snapshot) => {
const data = snapshot.val();
setNumberTrains(data.countTrains);
});
}

React.useEffect(()=>{
Read();
console.log(numberTrains)
},[]);

关于javascript - 我怎样才能调用该函数一次?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74860668/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com