reactjs - 将对象验证作为 React 中的 props 进行路由

标签 reactjs react-router

在 React 类中验证路由属性的正确方法是什么?

我尝试过:

  • route: React.PropTypes.object - 我的 eslint 提示:Prop type 对象被禁止react/forbid-prop-types
  • route: 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/

相关文章:

javascript - 如何访问 'this.props.match.params' 以及其他 Prop ?

reactjs - 使用 React Router 以编程方式导航,无需重复路径

javascript - React Router v4 基于参数获取数据

reactjs - 悬停在使用 tailwind css 的超链接中不起作用

reactjs - Redux 存储没有有效的 reducer

javascript - Nodemon 没有在 React-Express-Node App 中刷新浏览器

javascript - 将 POST react 到 Node 服务器并处理 JSON 响应

reactjs - 找不到模块 : Error: Can't resolve 'core-js/fn/array' React Webpack

javascript - fetchPolicy 选项 : "no-cache" does not work in useQuery

javascript - 如何处理导致不需要的组件重新安装的 react History.Push()?