Javascript 重置/清除antd范围选择器(React)
我有一个像这样的组件,我试图在用户选择日期后弄清楚。默认情况下,在用户选择日期后,它只停留在所选日期,用户需要手动重置它 默认行为: 期望的行为:Javascript 重置/清除antd范围选择器(React),javascript,reactjs,date,antd,Javascript,Reactjs,Date,Antd,我有一个像这样的组件,我试图在用户选择日期后弄清楚。默认情况下,在用户选择日期后,它只停留在所选日期,用户需要手动重置它 默认行为: 期望的行为: 从“antd”导入{DatePicker}; 从“力矩”中导入力矩; const{RangePicker}=DatePicker; 函数onChange(日期、日期字符串){ log('From:',日期[0],'to:',日期[1]); log('From:',日期字符串[0],'到:',日期字符串[1]); } ReactDOM.render
从“antd”导入{DatePicker};
从“力矩”中导入力矩;
const{RangePicker}=DatePicker;
函数onChange(日期、日期字符串){
log('From:',日期[0],'to:',日期[1]);
log('From:',日期字符串[0],'到:',日期字符串[1]);
}
ReactDOM.render(
,
mountNode,
);
因此,我尝试使用AntdAPI中的“值”,将值设置为state,并在用户每次选择日期时使用SetState将其删除(OnChange())——但不起作用。
还试图在antd RangePicker.js中找到clear button函数,但发现它对我来说太复杂了
有人知道怎么解决吗?
提前感谢(:。解决此问题的简单方法是重新安装组件 例如,假设我们有一个变量
someValue
,其中包含一些值,我们将该值分配给react组件的键
在第二次更改日期时,只需将键设置为其他值。通过此值的更改,React将检测到一个新键,并将重新安装组件,从而清除以前存储的所有本地状态
编辑1
我注意到您有两个日期选择器,在这种情况下,这两个范围选择器都需要两个变量。例如:
let key1 = 0;
let key2 = 0;
....
<RangePicker key={key1} ../>
<RangePicker key={key2} .. onChange={() => {
// all the change related to onchange
//set new values for key1 and key2
setKey2(key1++); setKey2(key2++);
}}/>
让key1=0;
设key2=0;
....
{
//所有与onchange相关的更改
//为键1和键2设置新值
setKey2(key1++);setKey2(key2++);
}}/>
注意:您在最后一次更改时重新安装组件,因为否则它将尝试在未安装的组件上发送更新。解决此问题的简单方法是重新安装组件
例如,假设我们有一个变量someValue
,其中包含一些值,我们将该值分配给react组件的键
在第二次更改日期时,只需将键设置为其他值。通过此值的更改,React将检测到一个新键,并将重新安装组件,从而清除以前存储的所有本地状态
编辑1
我注意到您有两个日期选择器,在这种情况下,这两个范围选择器都需要两个变量。例如:
let key1 = 0;
let key2 = 0;
....
<RangePicker key={key1} ../>
<RangePicker key={key2} .. onChange={() => {
// all the change related to onchange
//set new values for key1 and key2
setKey2(key1++); setKey2(key2++);
}}/>
让key1=0;
设key2=0;
....
{
//所有与onchange相关的更改
//为键1和键2设置新值
setKey2(key1++);setKey2(key2++);
}}/>
注意:您在最后一次更改时重新装载组件,因为否则它将尝试对未装载的组件发送更新。出于某种原因,它不工作,可能是因为我的RangePicker位于antd Drawer组件内?出于某种原因,它不工作,可能是因为我的RangePicker位于antd Drawer组件内?