【问题标题】:DatePicker: Value for value cannot be cast from String to DoubleDatePicker:值的值不能从 String 转换为 Double
【发布时间】:2020-08-30 18:41:09
【问题描述】:

我正在尝试学习如何在 React-Native 上使用 DatePicker。我在网上找到了这段代码,并在我的 App.js 上试了一下:

https://aboutreact.com/react-native-datepicker/

链接中的代码运行没有问题,但他们使用的DatePicker 已被弃用。所以我把导入从react-native-datepicker改成了@react-native-community/datetimepicker,并用React Hooks把类组件变成了一个函数。

但是,它返回错误:

Value for value cannot be cast from String to Double.

这是App.js

import React, { useState } from 'react';
import {View, StyleSheet, Text} from 'react-native';
import DatePicker from '@react-native-community/datetimepicker';

export default function MyDatePicker(props){
  const [date, setDate] = useState("22-06-2020");

  function handleDate(date) {
    setDate(date)
  }

    return (
      <View style={styles.container}>
        <DatePicker
          style={{width: 200}}
          value={date} //initial date from state
          mode="date" //The enum of date, datetime and time
          placeholder="select date"
          format="DD-MM-YYYY"
          minDate="01-01-2020"
          maxDate="01-01-2023"
          confirmBtnText="Confirm"
          cancelBtnText="Cancel"
          customStyles={{
            //Irrelevant
          }}
          onDateChange={handleDate}
        />

      </View>
    )
  }

我该如何解决这个错误?

【问题讨论】:

    标签: reactjs react-native datepicker react-hooks react-native-android


    【解决方案1】:

    如下更改 minDate 和 maxDate。

    var minDate =  new Date(2020,01,01);
    var maxDate = new Date(2023,01,01);
    

    【讨论】:

    • 我做到了,先生,但它返回错误:“严格模式下不允许传统八进制文字”
    • 移除 var 关键字。
    • minDate = new Date(2020,1,1); maxDate = new Date(2023,1,1);
    • minDate = new Date(2020,1,1); maxDate = 新日期(2023,1,1);去掉 0 , 把它当作八进制数
    • 它给了我初始错误'Value for value cannot be cast from String to Double'
    猜你喜欢
    • 2022-01-06
    • 2020-10-19
    • 1970-01-01
    • 2022-10-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    相关资源
    最近更新 更多