添加jquery datepicker以响应组件

时间:2016-12-09 09:41:15

标签: javascript jquery reactjs datepicker

我正在尝试将datepicker集成到react组件中。我正在使用pickaday jquery库作为datepicker。为了实现这一点,我创建了以下组件。

DatePicker.js.jsx

var DatePicker = React.createClass({
//This is a callback to parent component for updating the state
    changeDuration: function (date) {
        this.props.changeDuration(this.props.id, date);
    },

    componentDidMount: function () {
        _self = this;
        new Pikaday({
            field: document.getElementById(this.props.id),
            format: 'D MMM YYYY',
            onSelect: function () {
                _self.changeDuration(this.getMoment())
            },
            minDate: this.props.minDate
        });
    },


    render: function () {
        return (
            <input type="text" name={this.props.name} id={this.props.id} defaultValue={this.props.value}/>
        )
    }
});

这里的问题是,在第一页加载时我可以选择日期选择器并且它按预期工作,但是如果我再次更改它而不重新加载它将无法工作并在控制台中显示以下错误。

  

未捕获的TypeError:_self.changeDuration不是函数

有人能告诉我这里有什么问题吗?

1 个答案:

答案 0 :(得分:1)

错误是你的变量没有类型声明。

_self = this;

应该是

var _self = this