我在我的reactjs应用程序中定义了firebase如下(firebase v2要求正确)
var App = React.createClass({
mixins: [ReactFire],
componentWillMount: function () {this.bindAsObject(new Firebase(rootURL + 'items/'), 'items')},
render: function () {return <Header itemStore={this.firebaseRefs.items}/>}});
我将header类中的props称为fallow:
module.exports = React.createClass({
getInitialState: function () {
return {text: ''}
},
render: function () {return <button type="button" onClick={this.handleClick}>},
handleClick: function () {this.props.itemStore.push({
text:this.state.text,
done:false
});
this.setState({text:''});
}
});
但我的错误为Uncaught TypeError: Cannot read property 'push' of undefined
答案 0 :(得分:0)
您必须向您的班级添加以下内容:
propTypes: {
itemStore: ReactPropTypes.object
}
你的课程最终会像这样:
var ReactPropTypes = React.PropTypes;
module.exports = React.createClass({
propTypes: {
itemStore: ReactPropTypes.object
},
getInitialState: function () {
return {text: ''}
},
render: function () {return <button type="button" onClick={this.handleClick}>},
handleClick: function () {this.props.itemStore.push({
text:this.state.text,
done:false
});
this.setState({text:''});
}
});
答案 1 :(得分:0)
这里的问题是this.props.itemStore未定义。未定义的类型没有&#39; push&#39;方法可用。
在您点击处理程序中的console.log时,this.props.itemStore
看起来是什么样的,然后单击?如果它未定义,this.props
看起来像什么?