типы реквизита, не работающие в реактивном приложении - PullRequest
0 голосов
/ 07 сентября 2018

Я пытаюсь использовать proptypes для в моем приложении response-redux, но оно не работает, или я делаю что-то не так. это пример конца кода:

LoginPage.propTypes = {
     login_form: PropTypes.string
};

function mapStateToProps(state) {
     return { loginPage: state.loginPage }
 }

export default connect(mapStateToProps)(LoginPage);

login_form является логическим значением, и я намеренно написал PropType.string, чтобы посмотреть, работает ли он, но он не выдал мне никаких ошибок, возможно, это связано с избыточным соединением, но я не смог ничего найти по этому поводу. пожалуйста, кто-нибудь скажите мне, что я делаю не так: / спасибо.

Ответы [ 2 ]

0 голосов
/ 07 сентября 2018

Из документов :

Если для реквизита указано недопустимое значение, в консоли JavaScript будет отображаться предупреждение. По соображениям производительности propTypes проверяется только в режиме разработки.

Если вы запускаете проект, который не находится в режиме разработки, вы не увидите предупреждение.

См. Обновление ниже: Кроме того, PropTypes не выдает ошибку, а показывает предупреждение. Обязательно проверьте предупреждение в консоли. Возможно, вы выбрали отображение только ошибки.

А также обязательно импортируйте PropTypes из «prop-types» для работы с PropTypes:

import PropTypes from 'prop-types'

Если вышеприведенная вещь гарантирована, и вы все еще не видите предупреждение в консоли, то есть одна вероятность, что вы передадите логическое значение в строке:

<LoginPage login_form="true" />

Или,

<LoginPage login_form={'true'} />

Обязательно передайте логическое значение, например:

<LoginPage login_form={true} />

Примечание: если вы хотите передать истинное значение, вы можете просто передать реквизит следующим образом:

<LoginPage login_form />

Теперь, login_form: PropTypes.string покажет вам предупреждение.


Обновление:

Несмотря на то, что реагирующий документ говорит, что выдает предупреждение, я только что убедился, что на самом деле выдает ошибку без удержания приложения. Но сообщение начинается с Warning:. Таким образом, обязательно проверьте ошибка в консоли не предупреждение.

enter image description here

Или вы можете проверить default.

0 голосов
/ 07 сентября 2018

React автоматически проверит проп-типы, которые вы установили для компонента, и покажет [предупреждение] в консоли. Но если вы используете PropTypes без React, вы можете вручную вызвать PropTypes.checkPropTypes, так что в вашем случае.

const myPropTypes = {
  login_form: PropTypes.string,
  // ... define your prop validations
};

const props = {
  login_form: true, // not valid
};

PropTypes.checkPropTypes(myPropTypes, props, 'prop', 'LoginPage');
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...