如何在“ validationSchema” Formik和Yup中插入变量?

时间:2019-07-11 09:04:19

标签: javascript reactjs forms formik yup

我尝试通过Yup在Formik中验证<FieldArray />。单击“添加用户”后,我生成了一堆用户名。每个字段看起来像:

<Field
   type="text"
   name={`users.${index}.name`}
/>
<ErrorMessage
   name={`users.${index}.name`}
   component="div"
   className="invalid-feedback"
/>

我的validationSchema应该是什么样子?我认为应该将索引添加到shape方法中,而不要使用简单名称。但是我该怎么办?

validationSchema={yup.object().shape({
   // ?????
   name: yup.string().required('First Name is required'),
})}

1 个答案:

答案 0 :(得分:0)

您可以做两件事:

  1. 将新的键/值对附加到这样的对象上
var eatables = {vegetable: 'Carrot'}
var fruit_var = 'fruit'
eatables[fruit_var] = 'Apple'
console.log(eatables) // {fruit: 'Apple', vegetable: 'Carrot'}
  1. 在ES6中,您可以使用速记计算属性名称。
var fruit_var = 'fruit'
var eatables = {[fruit_var]: 'Apple', vegetable: 'Carrot'}
console.log(eatables) // {fruit: 'Apple', vegetable: 'Carrot'}

来源-Javascript: Computed Property Names (ES6)