我正在尝试在我的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:
开头。因此,请务必检查控制台中的错误而不是警告。
或者,您可能一定要检查默认
。
关于reactjs - prop 类型在 React 应用程序中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52216779/