【发布时间】:2019-01-16 02:23:49
【问题描述】:
我的组件在从 firebase 读取一次后正确安装,但在第二次尝试时失败,并说它无法获取值,因为“snap”未定义。我是新手,但我认为缺少绑定?
import React, { Component } from "react";
import "./solar.css";
import firebase from "firebase";
import { config } from "../config";
let app = firebase.initializeApp(config);
let database = app
.database()
.ref()
.child("values")
.child("Voltage");
class Solar extends Component {
state = {
voltage: 0
};
componentDidMount() {
this.interval = setInterval(
database.on("value", snap => {
this.setState({
voltage: snap.val()
});
console.log(snap.val());
}),
5000
);
}
componentWillUnmount() {
clearInterval(this.interval);
}
【问题讨论】:
-
你为什么使用
setInterval()? -
我希望组件每隔 5 秒更新一次
-
对 - 我已经提供了一个将
setInterval去掉的答案。要我重新插入吗?
标签: javascript reactjs firebase firebase-realtime-database