Форма Крючка Реакции Да Проверка Условной Схемы

#reactjs #validation #react-hook-form #yup

#реагирует на #утверждение #реакция-крючок-форма #ага

Вопрос:

Я пытаюсь создать условное поле ввода. Но я сталкиваюсь с некоторыми проблемами. Позвольте мне сначала показать вам код, а затем я объясню, в чем дело.

 export const addProductSchema = yup.object().shape({  productName: yup.string().required('Product name is required!'),  descriotion: yup.string().required('Product description is required!'),  parentProductId: yup.number().typeError('Parent Product is required!').required(),  vendorId: yup.number().typeError('Vendor is required!').required(),  brandId: yup.number().typeError('Brand is required!').required(),  attributeId: yup.number().typeError('Physical Attribute is required!').required(),  productShadeId: yup.number().typeError('Product Shade is required!').required(),  weight: yup.number().typeError('Product weight is required!').required(),  productDimension: yup.number().typeError('Product Dimension is required!').required(),  productPoints: yup.number().typeError('Product Points is required!').required(),  ismarketPlace: yup.boolean(),  isPublish: yup.boolean(),  isPreOrder: yup.boolean(),  delivaryDayPreorder: yup.string().when('isPreOrder', (value, schema) =gt; {  if (value === true) {  return schema  .matches(/^d $/, 'Enter only positive whole number!')  .required('Preorder Delivery Time is required!')  }  return schema.notRequired()  }), })  

Это моя схема добавления продукта. В схеме вы можете видеть, что у меня есть ключ с именем «isPreOrder». Что является флажком. По умолчанию он не установлен. И если пользователь установит флажок, я хочу показать поле ввода «delivaryDayPreorder». Я дал 2 изображения, чтобы вы могли понять, что я пытаюсь сказать.

Непроверено

Проверен

Теперь проблема, с которой я сталкиваюсь, немного связана со мной. Если я не поставлю флажок «isPreOrder» , все будет работать нормально. И я получаю объект без ключа «delivaryDayPreorder» при отправке формы.

Скажем так, я случайно поставил флажок «isPreOrder». Но я не хочу, чтобы это было правдой, поэтому я снял флажок. Но теперь при отправке формы я получу ключ «delivaryDayPreorder» со значением пустой строки. Но я не хочу, чтобы в моем объекте был ключ «delivaryDayPreorder». Как я могу решить эту проблему?