Javascript 如何访问事件函数内部的状态?
我有一个react组件来处理一些挑选日期的事情。我的jsx非常简单,您可以在下面看到:Javascript 如何访问事件函数内部的状态?,javascript,reactjs,Javascript,Reactjs,我有一个react组件来处理一些挑选日期的事情。我的jsx非常简单,您可以在下面看到: state = { date: new Date(), }; render() { return ( //left out for the sake of brevity... Date: {this.state.date.toString()} <Calendar onChange={dateChange} activeStartDate={th
state = {
date: new Date(),
};
render() {
return (
//left out for the sake of brevity...
Date: {this.state.date.toString()}
<Calendar onChange={dateChange} activeStartDate={this.state.date} />
//...
)}
function dateChange(date) {
console.log(date)
console.log(this)
}
但这将返回错误无法读取未定义的
的属性“bind”
我如何在我的
dateChange
函数中使用这个以及扩展我的当前状态?在类中定义它,作为类方法,而不使用函数词
class yourClass extends React.Component {
constructor(props) {
super(props);
this.state = { date: new Date() };
this.dateChange = this.dateChange.bind(this);
}
render() {
return (
//left out for the sake of brevity...
<Calendar onChange={this.dateChange} activeStartDate={this.state.date} />
//...
);
}
dateChange(date) {
console.log(date);
console.log(this);
}
}
class您的类扩展了React.Component{
建造师(道具){
超级(道具);
this.state={date:new date()};
this.dateChange=this.dateChange.bind(this);
}
render(){
返回(
//为了简洁起见被省略了。。。
//...
);
}
日期更改(日期){
控制台日志(日期);
console.log(this);
}
}
这样,您就可以使用this.dateChange=this.dateChange.bind(this)
将this
绑定到您的类
我也把状态移到了你的构造器;这是它通常初始化的地方
我删除了
Date:{this.state.Date.toString()}
,因为我不确定你想用它做什么(它是另一个组件吗?)-无论如何,我认为它不会影响对你问题的回答当我尝试这个时,我得到错误:预期的意外标记”
在新的日期更改
函数声明中,我添加了一些缺少的分号;每个语句的末尾都应该有一个。Hrrm,现在它从myonChange={dateChange}
代码中抛出dateChange未定义
。(还有,我没有投反对票-这很有帮助)啊-只是把它改成了this.dateChange
,它成功了-谢谢!是的,对不起,在复制粘贴上我没有更新它。答案更新-我很高兴它有帮助!
class yourClass extends React.Component {
constructor(props) {
super(props);
this.state = { date: new Date() };
this.dateChange = this.dateChange.bind(this);
}
render() {
return (
//left out for the sake of brevity...
<Calendar onChange={this.dateChange} activeStartDate={this.state.date} />
//...
);
}
dateChange(date) {
console.log(date);
console.log(this);
}
}