Правило eslint `Forbid-prop-types` вызывает предупреждение в окне консоли Firefox - PullRequest
0 голосов
/ 12 ноября 2018

Как сказано в документе здесь

массив и объект можно заменить на arrayOf и shape соответственно.

Итак, я сделал это в своем проекте:

class X extends React.Component {
....
}

X.propTypes = {
    somePorp: PropTypes.shape.isRequired, // this cause an warnning in firefox, but satisfied eslint syntax check
    somePorp: PropTypes.object.isRequired, // no warnning in firefox, but can not satisfy eslint syntax check
}

Вопрос :

Как можно избежать предупреждения в Firefox, а такжекак пройти проверку синтаксиса eslint (лучше не изменять правило по умолчанию eslint)?

Кстати: предупреждение firefox выглядит примерно так:

Предупреждение:Ошибка типа проп: X: тип пропуска classes недопустим;это должна быть функция, обычно из пакета prop-types, но полученная undefined.

1 Ответ

0 голосов
/ 12 ноября 2018

Вам необходимо определить форму опоры. Если вы не уверены, просто console.log() опора и посмотрите, что она составляет. Нажмите здесь, чтобы просмотреть доступные объявления PropType .

Например, если вы должны использовать redux store как this.props.store или history из react-router-dom как this.props.history:

enter image description here

history: PropTypes.objectOf(PropTypes.func).isRequired,       // object of funcs
store: PropTypes.shape({                                      // shape of...
  dispatch: PropTypes.func.isRequired,                          // func
  getState: PropTypes.func.isRequired,                          // func
  liftedStore: PropTypes.objectOf(PropTypes.func).isRequired,   // object of funcs
  replaceReducer: PropTypes.func.isRequired,                    // func
  subscribe: PropTypes.func.isRequired,                         // func
  Symbol: PropTypes.func.isRequired,                            // func
}).isRequired

Будьте осторожны при использовании isRequired, потому что иногда функция / массив / объект / значение / и т. Д. Может существовать или не существовать. В приведенном выше примере все они должны присутствовать при монтировании компонента.

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