如何在单击按钮时禁用 <react-date-picker> 组件
How to disable <react-date-picker> component on a button click
我使用了 react-date-picker
的日期选择器组件。我需要在单击按钮时禁用整个日期控件和按钮本身。该按钮确实被禁用,但 DatePicker 组件没有。我尝试了以下但没有用。有正确的方法吗?
import DatePicker from 'react-date-picker';
...
...
this.state = {
disabledDate: false
}
...
...
...
noDateRememberButtonClick() {
this.setState({
disabledDate: true
});
}
render() {
return(
<div className="wrapper">
<div className="date-picker">
<DatePicker
onChange={this.dateOnChange}
value={this.state.boughtDate}
disabled={this.state.disabledDate} />
</div>
<button className="btn" onClick={this.noDateRememberButtonClick} disabled={this.state.disabledDate} type="button"> {BUTTON_LABEL}</button>
</div>
)}
react-date-picker 不支持 disabled
属性。参见 https://github.com/wojtekmaj/react-date-picker
根据 shaz 的建议,react-datepicker (https://github.com/Hacker0x01/react-datepicker/blob/master/docs/datepicker.md) 可以,如果您想改用该组件
试试这个。适合我
const CustomInput = (props) => {
return (
<input
className={[classes.TransparentInput, "uk-input"].join(" ")}
onClick={props.onClick}
value={props.value}
type="text"
readOnly={true}
/>
)
}
<DatePicker
customInput={<CustomInput />}
name={'from'}
value={values['from']}
onChange={e => setFieldValue('from', moment(e).format('L'))}
/>
setFieldValue 来自 formik。您可以选择不使用 formik。你的选择。
作为一个 hacky 解决方法(不想使用另一个库),这对我有用:
在包装 DatePicker
的容器上添加 disabled class
.disabled {
pointer-events: none;
input {
background: transparent;
box-shadow: none;
border: none;
}
}
编辑:输入样式只需要,如果你想让字段看起来像纯文本。
<DatePicker
ref={endCalendarRef}
readOnly={true}
.....
/>
我使用了 react-date-picker
的日期选择器组件。我需要在单击按钮时禁用整个日期控件和按钮本身。该按钮确实被禁用,但 DatePicker 组件没有。我尝试了以下但没有用。有正确的方法吗?
import DatePicker from 'react-date-picker';
...
...
this.state = {
disabledDate: false
}
...
...
...
noDateRememberButtonClick() {
this.setState({
disabledDate: true
});
}
render() {
return(
<div className="wrapper">
<div className="date-picker">
<DatePicker
onChange={this.dateOnChange}
value={this.state.boughtDate}
disabled={this.state.disabledDate} />
</div>
<button className="btn" onClick={this.noDateRememberButtonClick} disabled={this.state.disabledDate} type="button"> {BUTTON_LABEL}</button>
</div>
)}
react-date-picker 不支持 disabled
属性。参见 https://github.com/wojtekmaj/react-date-picker
根据 shaz 的建议,react-datepicker (https://github.com/Hacker0x01/react-datepicker/blob/master/docs/datepicker.md) 可以,如果您想改用该组件
试试这个。适合我
const CustomInput = (props) => {
return (
<input
className={[classes.TransparentInput, "uk-input"].join(" ")}
onClick={props.onClick}
value={props.value}
type="text"
readOnly={true}
/>
)
}
<DatePicker
customInput={<CustomInput />}
name={'from'}
value={values['from']}
onChange={e => setFieldValue('from', moment(e).format('L'))}
/>
setFieldValue 来自 formik。您可以选择不使用 formik。你的选择。
作为一个 hacky 解决方法(不想使用另一个库),这对我有用:
在包装 DatePicker
的容器上添加 disabled class.disabled {
pointer-events: none;
input {
background: transparent;
box-shadow: none;
border: none;
}
}
编辑:输入样式只需要,如果你想让字段看起来像纯文本。
<DatePicker
ref={endCalendarRef}
readOnly={true}
.....
/>