React PropTypes не требуется показывать



У меня есть эти PropTypes Настройки:



Select.propTypes = {
onSelect: PropTypes.func.isRequired,
data: PropTypes.arrayOf(PropTypes.shape({
key: PropTypes.string.isRequired,
value: PropTypes.string.isRequired
}).isRequired).isRequired
}


onSelect и data оба будут показывать ошибки, если они не определены. Однако форма объекта в массиве данных, не является валидирующей. Я могу использовать data={[]}, и это не ошибка.



Есть ли что-то, что я упускаю здесь? Спасибо
415   1  

1 ответ:

Я думаю, что это ожидалось. Когда prop является обязательным массивом, вы можете передать либо пустой массив, либо массив с элементами данного типа. Не только для фигуры, даже для PropTypes.arrayOf(PropTypes.number).isRequired он будет считать и [], и [9] допустимыми, но не ["9"]. Это не вносит изменений, даже если вы используете PropTypes.arrayOf(PropTypes.number.isRequired).isRequired.

В принципе, вы не можете указать минимальное количество элементов, которые должны быть в массиве, или ограничить назначение пустого массива типами prop.

Comments

    Ничего не найдено.