Formik Yup即使满足要求也显示错误

问题描述 投票:0回答:1

我希望TextInput准确验证16位数字。我尝试了以下方法:

yup.number()
  .test('len', 'Must be exactly 16 numbers', val => val.length === 16)

但是,每次我在该字段中键入任何内容时,都会得到以下内容:

可能未处理的承诺拒绝

我尝试了以下方法:

yup.number().max(16)

但是,即使我准确输入了16位数字,它仍然会抛出一个错误,指出它必须小于或等于16个字符。

reactjs react-native formik yup
1个回答
0
投票

这是因为数字没有length属性。您需要先将其转换为字符串。另外,检查数字上的max将在大于16的任何数字上出错,而​​不是长度超过16位的数字。

yup.number()
  .test('len', 'Must be exactly 16 numbers', val => val.toString().length === 16)
© www.soinside.com 2019 - 2024. All rights reserved.