尝试使用setState时出现以下错误:
VARCHAR (64),null
我不知道自己哪里出错了,请有人指出我正确的方向。 这是我的代码:
{{1}}
答案 0 :(得分:2)
这种情况正在发生,因为这不再是组件的上下文。你需要这个组件。检查我是如何抓住组件的。
export default React.createClass({
getInitialState: function () {
return {
name: '',
address: '',
phone: '',
email: '',
}
},
componentWillMount(){
this.getUserDetails();
},
getUserDetails: function(){
var that = this
var personID = 'ABC123';
if(personID.length > 0){
new Firebase('https://xxxxxxxxxx.firebaseio.com/users/' + personID).on('value', function(snap) {
that.setState({
name: snap.val().Name + " " +snap.val().Surname
});
});
}
},
render() {
return ( ... );
}
});
答案 1 :(得分:2)
就像人们上面所说的那样,如果您只是将其编辑为箭头功能,它会将this
的上下文从Firebase更改为外部范围 - 这是组件。
new Firebase('https://xxxxxxxxxx.firebaseio.com/users/' + personID).on('value', (snap) => {
this.setState({
name: snap.val().Name + " " +snap.val().Surname
});
});