如何在jquery回调函数中访问reactjs组件状态

时间:2016-04-20 08:39:28

标签: jquery reactjs

如何从jQuery“changeDate”事件(jqueryUI date)回调函数访问反应组件状态。

var subheader = React.createClass({

    getInitialState: function () {
        return {
            msg: this.props.msg
        };
    },

    componentDidMount: function () {
        $('#date').datepicker({
            format: "dd/mm/yyyy"
        }).on("changeDate", function (e) {
            console.log(this.state.msg);
        });

    },
    render: function () {
        return (
                    // render HTML here.

        )
    }
});

但是获取this.state是未定义的。请任何人帮助我。

1 个答案:

答案 0 :(得分:5)

此问题并非特定于React but JavaScript in general

你可以解决它在上限范围内保存this

componentDidMount: function () {
    var self = this;
    $('#date').datepicker({
        format: "dd/mm/yyyy"
    }).on("changeDate", function (e) {
        console.log(self.state.msg);
    });
},

如果您正在使用EcmaScript6,则可以使用arrow function

componentDidMount: function () {
    $('#date').datepicker({
        format: "dd/mm/yyyy"
    }).on("changeDate", e => {
        console.log(this.state.msg);
    });
},