【发布时间】:2019-12-12 21:14:39
【问题描述】:
抱歉,如果这看起来很费力,但我整天都在谷歌上搜索。我正在尝试使用日期选择器进行选择时更改日期的状态。我可以通过以下方式使用此功能:
onDateChange={currentDate => this.setState({currentDate: currentDate})}
但是如果我尝试把它变成一个函数:
onDateChange(currentDate) {
this.setState({currentDate: currentDate});
}
然后将该函数传递给onDateChange:
onDateChange={this.onDateChange}
这返回“无法设置未定义的状态。我这样做的原因是因为我需要 onDateChange 函数在父组件中执行,然后将该道具传递给该组件。但我什至无法让该函数工作在子组件中。我尝试过使用箭头函数,但我很难过。有人可以告诉我为什么这不能作为函数工作吗?
更新:
解决了
onDateChange={this.onDateChange} changed to {this.onDateChange.bind(this)}
【问题讨论】:
-
onDateChange={this.onDateChange}可以试试绑定这个onDateChange={this.onDateChange.bind(this)} -
因为,
onDateChange不知道this变量,所以你要么需要像上面那样绑定它,要么使用一个箭头函数,这是一个 es6 的东西来处理这个上下文 -
@Lunamaxx 您不能将对象方法作为回调传递(在这种情况下通过 React 道具,但它与 React 本身无关)并保留正确的
this值。如果您打算继续编写 Javascript,您肯定会想要阅读this关键字。
标签: javascript reactjs datepicker react-datepicker react-dates