Использовать импортированные модули в определениях React propType - PullRequest
0 голосов
/ 29 августа 2018

Мне нужны Row s дочерние элементы для всех экземпляров компонента Col: Следующий код работал, когда Row и Col находились в одном файле, но при импорте Col в Row я получаю эту ошибку: Warning: Failed prop type: Cannot call a class as a function

Как можно использовать переменные и импорт в определениях propType? (здание с пачкой)

import React from 'react';
import PropTypes from 'prop-types';
import Col from './Col';

export default class Row extends React.Component {
  static propTypes = {
    children: PropTypes.oneOfType([
      PropTypes.shape({ type: Col }),
      PropTypes.arrayOf(PropTypes.shape({ type: Col }))
    ]).isRequired,
......

1 Ответ

0 голосов
/ 30 августа 2018

Поскольку сами разработчики React допускают здесь , нет единого способа определить тип проп для компонента.

Возможно, наиболее общим вариантом будет:

PropTypes.oneOfType([React.PropTypes.string, React.PropTypes.func])

Если вас не интересуют строки (для нативных элементов, таких как "div"), вы можете просто сделать:

React.PropTypes.func

А если вы хотите получить очень конкретную информацию, посмотрите этот ответ:

Реагировать на класс компонентов propTypes?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...