reactjs firebase'推'未定义

时间:2016-11-03 14:35:57

标签: reactjs firebase firebase-realtime-database

我在我的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

2 个答案:

答案 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看起来像什么?