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

Vam*_*ars 2 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.

        )
    }
});
Run Code Online (Sandbox Code Playgroud)

但得到this.state是未定义的.请任何人帮助我.

Gle*_*ift 6

此问题并非特定于React,而是一般的JavaScript.

你可以解决它this在上限范围内保存的问题:

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

如果您使用的是EcmaScript6,可以使用箭头功能:

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