Ine*_*ina 5 promise firebase reactjs firebase-realtime-database
如何在反应组件内设置状态?
我收到了错误消息:
未捕获的TypeError:无法读取null的属性"setState"
这是组件代码清单:
class MessageList extends React.Component {
constructor(props){
super(props);
this.state = {
messages: []
};
var firebaseRef = firebase.database().ref();
firebaseRef.once('value')
.then(function(dataSnapshot) {
this.setState({
messages: messages
});
});
}
render() { ... }
}
Run Code Online (Sandbox Code Playgroud)
Jam*_*111 14
这是指承诺范围.使用胖箭头功能(es6)
var firebaseRef = firebase.database().ref();
firebaseRef.once('value')
.then((dataSnapshot) => {
this.setState({
messages: messages
});
});
Run Code Online (Sandbox Code Playgroud)
或者在承诺之前创建一个这样的副本
constructor(props){
super(props);
this.state = {
messages: []
};
var that = this;
var firebaseRef = firebase.database().ref();
firebaseRef.once('value')
.then(function(dataSnapshot) {
that.setState({
messages: messages
});
});
Run Code Online (Sandbox Code Playgroud)
最后一个选项,您可以将此绑定到承诺:
firebaseRef.once('value')
.then(function(dataSnapshot) {
this.setState({
messages: messages
});
}).bind(this)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
5547 次 |
| 最近记录: |