Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 重置/清除antd范围选择器(React)_Javascript_Reactjs_Date_Antd - Fatal编程技术网

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组件内?