是的,除了单击组件本身之外,还可以将其打开。您可以使用
open
日期选择器的属性。以下是代码的修改版本:
import React from "react";
import ReactDOM from "react-dom";
import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";
import "./styles.css";
class Example extends React.Component {
constructor(props) {
super(props);
this.state = {
startDate: new Date(),
datePickerIsOpen: false,
};
this.handleChange = this.handleChange.bind(this);
this.openDatePicker = this.openDatePicker.bind(this)
}
handleChange(date) {
this.setState({
startDate: date
});
}
openDatePicker() {
this.setState({
datePickerIsOpen: !this.state.datePickerIsOpen,
});
};
render() {
return (
<div>
<button onClick={this.openDatePicker}>openDate</button>
<DatePicker
selected={this.state.startDate}
onChange={this.handleChange}
onClickOutside={this.openDatePicker}
open={this.state.datePickerIsOpen}
/>
</div>
);
}
}
const rootElement = document.getElementById("root");
ReactDOM.render(<Example />, rootElement);
如您所见,我们向示例类添加了一个状态,它控制
打开
日期选择器的属性。我还添加了onClickOutside,它可以用来确定如果用户在datepicker打开后单击它的外部应该发生什么。