我试图在单击图标时打开react-datepicker。为此,我正在使用customInput
参数。单击该图标即可打开react-datepicker,但onChange
处理程序未获得所选日期。这是我的代码:
<div className="date-icon">
<DatePicker
id="date-picker"
dateFormat="YYYY-MM-DD"
selected={this.state.startDate}
showMonthDropdown
onChange={this.handleDateChange.bind(this)}
customInput={<img src="/img/cal.svg" alt=""/>}
//includeDates={this.state.activityDates}
/>
<br/>
</div>
这是handleDateChange函数
handleDateChange(date, event){
console.log(document.getElementById("date-picker").value)
}
我在控制台日志上得到
undefined
。当我删除该
customInput
参数时,日期将按预期方式在控制台中打印。 最佳答案
默认输入是一个input
元素,该元素具有一个value
。您的自定义输入<img src="/img/cal.svg" alt=""/>
不是输入元素,并且没有value
。
您可以将给定的力矩存储在onChange
处理程序中,并将其存储在状态中,然后使用它。
例
class App extends React.Component {
state = { selectedDate: moment() };
handleDateChange = m => {
this.setState({ selectedDate: m });
console.log(m.format("YYYY-MM-DD"));
};
render() {
return (
<DatePicker
id="date-picker"
dateFormat="YYYY-MM-DD"
selected={this.state.selectedDate}
showMonthDropdown
onChange={this.handleDateChange}
customInput={<img src="/img/cal.svg" alt=""/>}
/>
);
}
}