reactjs firebase ‘push’ of undefined

Я определил firebase в моем приложении reactjs следующим образом (требуется правильно с 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}/>}});

и я называю реквизит в классе заголовка как 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 ответа

  1. Вы должны добавить в свой класс следующее:

        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:''});
        }
    });
    
  2. Проблема вот в чем.реквизит.itemStore не определен. Неопределенный тип не имеет доступного метода ‘push’.

    this.props.itemStoreКак выглядит консоль.войдите в обработчик click и нажмите кнопку? Если он не определен, как он this.propsвыглядит?