在 React 类中验证路由属性的正确方法是什么?
我尝试过:
route: React.PropTypes.object
- 我的 eslint 提示:Prop type对象
被禁止react/forbid-prop-typesroute: React.PropTypes.instanceOf(React.propTypes)
- 这会导致 运行时警告:'instanceof' 的右侧不可调用,请检查 bla 的渲染方法
我们有验证 eslint 规则强制执行的 props 的策略,我如何验证路由对象?
我的代码:
var bla = React.createClass({
displayName: 'bla',
propTypes: {
route: React.PropTypes.object,
})
class RootRoute extends React.Component {
render() {
return (
<Router history={hashHistory}>
<Route path="/" component={bla}/>
</Router>
);
}
}
最佳答案
首次尝试,请使用 PropTypes.shape
。
阅读 eslint 文档以获取有关该规则的更多信息: https://github.com/yannickcr/eslint-plugin-react/blob/master/docs/rules/forbid-prop-types.md
阅读react-router文档以获取有关route
对象形状的信息:https://github.com/reactjs/react-router/blob/master/docs/API.md#proptypes
第二次尝试,在 instanceOf()
内,您需要放置一个类型或类。我不确定你从哪里得到这个React.propTypes
。拼写错误?
在此处阅读有关 PropTypes.instanceOf
的更多信息:https://facebook.github.io/react/docs/reusable-components.html
关于reactjs - 将对象验证作为 React 中的 props 进行路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38237439/