如何从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是未定义的。请任何人帮助我。
答案 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);
});
},