【问题标题】:Filter valid date for text input过滤文本输入的有效日期
【发布时间】:2021-12-21 09:59:19
【问题描述】:

我有文本输入来接收日期,一个用于月份,另一个用于日期,第三个用于年份。我想在发送数据之前检查输入是否有效,我该怎么做,这是我的代码

<TextInput
              onChangeText={setMonth}
              value={monthText}
              placeholder="Month"
              returnKeyType={'done'}
              keyboardType={'number-pad'}
              maxLength={2}
              style={{
                backgroundColor: 'white',
                height: 40,
                padding: 10,
                borderRadius: 5,
                borderColor: '#B7B7B7',
                width: 104,
                textAlign: 'center',
              }}
            />

设置月份是一个正常的钩子

我使用更新它

<TouchableOpacity
            style={{
              justifyContent: 'center',
              backgroundColor: '#533AED',
              width: '80%',
              height: 50,
              borderRadius: 50,
              alignItems: 'center',
            }}
            onPress={() => saveUserCardData()}>
            <View
              style={{
                paddingRight: 20,
                alignItems: 'center',
              }}>
              <Text
                style={{
                  fontSize: 16,
                  color: '#FFF',
                  alignItems: 'center',
                  paddingRight: 30,
                  paddingLeft: 40,
                  fontWeight: 'bold',
                }}>
                UPDATE
              </Text>
            </View>
          </TouchableOpacity>

并且正在运行这个函数:

const saveUserCardData = () => {
    let data = {
      email: user.email,
      age: dataAge[age].age,
      birthday: `${yearText}-${monthText}-${dayText}`,
      height: heightUnit === 'cm' ? dataHeightCm[height].height : dataHeightFt[height].height, 
      weight: weightUnit === 'lb' ? dataWeightLb[weight].weight : dataWeightKg[weight].weight,
      gender: gender === 'male' ? 'M' : 'F'
    };

我应该在哪里以及如何验证日期?

感谢您的帮助。

【问题讨论】:

    标签: react-native react-hooks textinput react-native-textinput


    【解决方案1】:

    也许momentjs可以帮助处理日期,https://momentjs.com/docs/#/parsing/is-valid/

    我会在调用保存函数之前调用一个验证函数

    onPress={() => {
       validateData() ? saveUserCardData() : // handle error
      }
    }>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-06-09
      • 1970-01-01
      相关资源
      最近更新 更多