Javascript onChange事件中未定义id

Javascript onChange事件中未定义id,javascript,reactjs,datepicker,Javascript,Reactjs,Datepicker,使用react,我试图获取单击组件的id <DatePicker id={cellData.column} selected={DatePickerDate} onChange={this.onDateRangePickerChange} className='form-control' /> 如何获取已单击日期选择器的id?您可以尝试以下方法: onDateRangePickerChange: function(event){

使用react,我试图获取单击组件的id

<DatePicker
id={cellData.column}
selected={DatePickerDate}
onChange={this.onDateRangePickerChange}
className='form-control'
                    />

如何获取已单击日期选择器的id?

您可以尝试以下方法:

onDateRangePickerChange: function(event){

        var id = event.target.id;  // ID from the element
        var localRowDataStack = _.cloneDeep(this.state.rowDataStack);
        localRowDataStack[id] = picker.startDate.format(appConfig.getKey('dateFormat'));
        this.setState({
            rowDataStack: localRowDataStack,
            isOmitReRender: false
        });
},

您可以在这里看到更多的示例/响应:

您还可以扩展OnDaterRangePickerChange以接受id,并将其如下所示:

<DatePicker
    id={cellData.column}
    selected={DatePickerDate}
    onChange={(e, p) => this.onDateRangePickerChange(e, p, cellData.column)}
    className='form-control'/>
this.onDateRangePickerChange(e,p,cellData.column)}
className='form-control'/>

您可以使用
.bind
id
设置为
onDateRangePickerChange
的第一个参数,从而避免将
id
添加为
DatePicker
属性

onDateRangePickerChange: function (column, date) {
  console.log(column, date);
},

<DatePicker
  selected={ DatePickerDate }
  onChange={ this.onDateRangePickerChange.bind(this, cellData.column) }
  className="form-control"
/>;
OnDaterRangePickerChange:函数(列、日期){
console.log(列、日期);
},
;

非常感谢您的回复,我仍然得到了未定义的id,因为事件是一个瞬间日期。感谢您的回复,我如何使用es5做到这一点?@Alexander在es5中为您提供了此示例
onDateRangePickerChange: function (column, date) {
  console.log(column, date);
},

<DatePicker
  selected={ DatePickerDate }
  onChange={ this.onDateRangePickerChange.bind(this, cellData.column) }
  className="form-control"
/>;