gpt4 book ai didi

javascript - 如何在 react js中单击按钮或图标单击打开日期选择器

转载 作者:行者123 更新时间:2023-12-05 01:16:27 25 4
gpt4 key购买 nike

我在我的演示应用程序中使用这个日期选择器

https://www.npmjs.com/package/react-datepicker但是当我点击输入字段时我的日期选择器打开了。当用户点击右侧的按钮和图标而不是输入点击时我们可以打开日期选择器吗?

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()
};
this.handleChange = this.handleChange.bind(this);
}

handleChange(date) {
this.setState({
startDate: date
});
}

openDatePicker = () => {};

render() {
return (
<div>
<DatePicker
selected={this.state.startDate}
onChange={this.handleChange}
/>
<button onClick={this.openDatePicker}>openDate</button>
</div>
);
}
}

const rootElement = document.getElementById("root");
ReactDOM.render(<Example />, rootElement);

最佳答案

是的,除了单击组件本身之外,还可以打开它。您可以使用 Datepicker 的 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);

如您所见,我们在 Example 类中添加了一个状态,它控制 Datepicker 的 open 属性。我还添加了 onClickOutside,它可用于确定如果用户在日期选择器打开后单击外部会发生什么。

关于javascript - 如何在 react js中单击按钮或图标单击打开日期选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53661692/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com