#reactjs #react-proptypes
#reactjs #react-proptypes
Вопрос:
Итак, у меня есть созданный мной универсальный модальный компонент. Этот модал может иметь или не иметь форму, в зависимости от того, предоставлено ли свойство «form». Мое намерение, используя проверку PropTypes, состоит в том, чтобы имя формы было обязательным, ЕСЛИ предоставлено свойство form. Это мой код PropTypes:
form: PropTypes.shape({
name: PropTypes.string.isRequired,
handleSubmit: PropTypes.func,
initialValues: PropTypes.object
}),
Итак, это работает для обеспечения соблюдения требования о наличии имени при использовании свойства «форма». Однако, когда свойство «form» не предоставлено, я получаю предупреждение в консоли о том, что в нем отсутствуют требуемые form.name свойство.
Я хочу, чтобы это было там, где «форма» является необязательной, но если указана «форма», требуется «имя». Есть ли какой-либо способ сделать это?
Комментарии:
1. Это должно работать так, как вы ожидаете. Я предполагаю, что вы передаете пустой объект для
form
, а неnull
нет? Вот почему вы получаете предупреждение. Может быть, даже вdefaultProps
?2. Вы можете создать пользовательский propType, как описано в документации к
customProp
примеру .