Условная проверка с Yup и Formik

Похоже, что вы удалили и воссоздали модель (или что-то подобное), но оставили исходный файл дизайнера в каталоге. Затем, когда вы добавили новую модель, ей пришлось использовать Model1 вместо Model в качестве имени файла конструктора. Вы пробовали исключить файл Model.Designer.cs и оставить его вместо файла Model1.Designer.cs?

Хорошо, глядя на файл проекта для нашего проекта с моделью, я могут видеть следующие потенциально релевантные разделы:

<Compile Include="Domain\Model.Designer.vb">
  <AutoGen>True</AutoGen>
  <DesignTime>True</DesignTime>
  <DependentUpon>Model.edmx</DependentUpon>
</Compile>

Я считаю, что это говорит проекту, что файл кода является частью проекта и должен быть подносом файла model.edmx и быть регенерированным когда он меняется.

У нас также есть этот раздел:

<EntityDeploy Include="Domain\Model.edmx">
  <Generator>EntityModelCodeGenerator</Generator>
  <LastGenOutput>Model.Designer.vb</LastGenOutput>
  <CustomToolNamespace>Domain</CustomToolNamespace>
</EntityDeploy>

Не уверен, какой из этих элементов управляет сгенерированным именем файла, но вы можете попробовать вручную отредактировать свой файл проекта, чтобы узнать, , Я бы сказал, что вам нужно будет менять оба одновременно, а не только один.

0
задан Sgt Maddonut 28 February 2019 в 05:53
поделиться

1 ответ

Вы можете условно добавить в свою схему проверки, как и любой другой объект:

let validationShape = {
  company: Yup.object().shape({
    name: Yup.string().required('Field is required'),
    address: Yup.string().required('Field is required'),
    email: Yup.string()
      .email('Wrong e-mail format')
      .required('Field is required')
  })
};

if (this.state.isPerson) {
  validationShape.person = Yup.object().shape({
    name: Yup.string().required('Field is required'),
    surname: Yup.string().required('Field is required'),
    middleName: Yup.string().required('Field is required'),
    email: Yup.string()
      .email('Wrong e-mail format')
      .required('Field is required');
}

const validationSchema = Yup.object().shape(validationShape);
0
ответ дан imjared 28 February 2019 в 05:53
поделиться
Другие вопросы по тегам:

Похожие вопросы: