reactjs - prop 类型在 React 应用程序中不起作用

标签 reactjs redux react-proptypes

我正在尝试在我的react-redux应用程序中使用proptypes,但它不起作用,或者我做错了什么。这是代码示例的结尾:

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

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

export default connect(mapStateToProps)(LoginPage);

login_form 是 bool 值,我故意写了 PropType.string 来看看它是否有效,但它没有给我任何错误,这可能是因为 redux connect,但我无法搜索任何相关内容。请任何人告诉我我做错了什么:/谢谢。

最佳答案

来自 docs :

When an invalid value is provided for a prop, a warning will be shown in the JavaScript console. For performance reasons, propTypes is only checked in development mode.

如果您运行的项目未处于开发模式,则您看不到该警告。

请参阅下面的更新:此外,PropTypes 不会引发错误,但会显示警告。请务必检查控制台中的警告。您可能选择仅显示错误。

此外,请务必从“prop-types”导入 PropTypes 以使用 PropTypes:

import PropTypes from 'prop-types'
<小时/>

如果上述事情得到保证,并且您仍然没有在控制台中看到警告,那么您有可能在字符串中传递 bool 值:

<LoginPage login_form="true" />

或者,

<LoginPage login_form={'true'} />

确保传递 bool 值,如下所示:

<LoginPage login_form={true} />

注意:如果你想传递真实值,你可以像这样传递 props:

<LoginPage login_form />

现在,login_form: PropTypes.string 将向您显示警告。

<小时/>

更新:

虽然 react 文档说它会抛出警告,但我刚刚验证它实际上会在没有应用程序保留的情况下抛出错误。但该消息以 Warning: 开头。因此,请务必检查控制台中的错误而不是警告。

enter image description here

或者,您可能一定要检查默认

关于reactjs - prop 类型在 React 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52216779/

相关文章:

javascript - prop 的默认类型取决于另一个 prop 的值

mysql - 与 Node 后端路由 react View

javascript - 如何使用 onPress 定位节点而不是节点号

redux - 如何让下拉菜单在 Statelesswidget 上工作

javascript - 如果发布请求成功则关闭对话框

javascript - 在带有 AXIOS 的 Firefox 扩展中使用 XMLHttpRequest 获取二进制数据

javascript - 未捕获的类型错误 : Cannot read property 'bool' of undefined

reactjs - React Router 4 params prop 上的 PropTypes isRequired

javascript - Reactjs 应用程序的生产版本 Javascript 被禁用,<body> 中的 <noscript> 标记

javascript - 在 Apollo Client 中取消订阅