时间戳格式不支持将React`react-datepicker`作为默认值

时间:2019-12-30 11:05:56

标签: reactjs react-datepicker

我从api结果中得出的日期时间格式为2019-12-30T06:16:48.453Zreact-datepicker不支持它。

我的代码在后面,是一个功能组件。我没有在下面写完整的代码。仅添加了必需的部分。

import DatePicker from "react-datepicker";
import "react-datepicker/dist/react-datepicker.css";

<DatePicker
    selected={'2019-12-30T06:16:48.453Z'}
    {...props}
/>

我还尝试通过导入添加moment并将其用作selected={moment('2019-12-30T06:16:48.453Z')}

在两种情况下,例如Maximum update depth exceeded都出现错误。

4 个答案:

答案 0 :(得分:1)

仍然使用1.8版本的datepicker,以减少使用本地Date对象的软件包大小。 reference

因此您可以如下所示更新代码

 function App() {
  return (
    <div className="App">
      <DatePicker selected={new Date("2019-12-30")} />
      <DatePicker selected={new Date("2019-12-30T06:16:48.453Z")} />
    </div>
  );
}

工作codesandbox

更新

要获取所需的格式,请响应datepicker有一个名为dateFormat的道具,因此您可以像这样dateFormat="dd/MM/yyyy"添加,请参见here

答案 1 :(得分:0)

  

已超过最大更新深度

当您在render方法的返回内部进行的函数调用超出限制时,将发生此错误。您能否在组件内部签出任何其他函数调用。

还有

  

反应日期选择器

尝试基本的JavaScript Date API。

selected={new Date('2019-12-30T06:16:48.453Z')}

这应该有效

答案 2 :(得分:0)

 const datee='2019-12-30T06:16:48.453Z';
 let filt = Date(datee);
 console.log(filt);
 document.write(filt);

答案 3 :(得分:0)

关于无限循环的此错误。 您可以检查此问题:ReactJS: Maximum update depth exceeded error 而且您还可以在DatePicker组件中设置dateFormat,例如:dateFormat =“ MMMM d,yyyy h:mm aa” 检查以下格式:https://reactdatepicker.com/