4
我为我的智能家居仪表板(内置反应和firebase)设置了人员跟踪器。但是,当firebase数据库更改时,它不会导致反应组件上的重绘。我无法辨别我出错的地方,有人可以帮我吗?当Firebase更新时React组件不会更新
import React from 'react';
import * as firebase from 'firebase';
import moment from 'moment';
export default class IO extends React.Component {
constructor() {
super();
this.state = {
people: []
};
}
componentDidMount() {
let peopleArray = []
this.dbroot = firebase.database().ref().child('io')
this.dbroot.on('value', snapshot => {
snapshot.forEach((snap) => {
if(snap.val().active === true) {
peopleArray.push(snap.val())
}
})
this.setState({people: peopleArray})
});
}
render() {
return(
<section class="c-module c-module_IO">
<ul>
{
this.state.people.map((p) => {
return <li key={ p.name } class={'status--'+p.status}><img src={p.image} alt={ p.name } /></li>
})
}
</ul>
</section>
)
}
}
感谢的人!这就像一个魅力! –