React PropTypes-как сделать фигуру необязательной с требуемыми полями?
у меня есть компонент, который получает badge prop (см. пример ниже). Значок необязателен, но после его использования я хочу, чтобы внутри него были некоторые обязательные поля. Я пробовал следующее:
Component.propTypes = {
badge: PropTypes.shape({
src: PropTypes.string.isRequired,
alt: PropTypes.string.isRequired,
}),
}
это работает, но я получаю это предупреждение в Chrome при попытке использовать его без значка:
предупреждение: неудачный тип опоры: опора
badge.srcотмечен как обязательный вComponent, но его значениеnull.
что такое правильный способ сделать это?
пример использования компонента:
badge={{ src: 'usa.png', alt: 'United States' }}
1 ответов
этой is правильный способ сделать это. Я был очень заинтригован тем, как это не сработает, поэтому я вставил его в CodePen (https://codepen.io/Oblosys/pen/xLvxrd) и он работает так же, как ожидалось. (Откройте консоль и раскомментируйте неудачную, чтобы увидеть ошибку типа prop)
что-то должно быть не так в коде, и в какой-то момент вы оказываете Component с объектом свойства значка, который имеет src: null. Возможно, перед данными из запроса api приехал? С некоторым консольным входом в Component и его родитель, вы должны быть в состоянии найти виновника.
