我正在使用React-Router v4的
Match object将params传递给下一个组件.我的路由就像:
<Switch> <Route exact path="/" component={ExperimentListPage} /> <Route path="/experiment/:experiment" component={ExperimentResultsPage} /> </Switch>
我的子组件看起来像:
const ExperimentResultsPage = props => ( <ExperimentResultsContainer experimentName={props.match.params.experiment} /> ); export default withRouter(ExperimentResultsPage);
这一切都按预期工作,但是ESLint对我使用match.params.experiment非常不满意,并且在道具验证(react / prop-types)中缺少[eslint]’match.params.experiment’错误
我在React文档中看到我可以使用PropTypes.shape
而不是我的params对象,但我希望有更好的方法,特别是因为Match对象包含很多字段.
有没有更好的方法将Match路径对象添加到道具验证?那会是什么样子?如果没有,我是否错过了其他可以帮助解决此问题的方法?
我碰到了类似的东西,eslint似乎很好,只是声明我使用道具并忽略匹配中未使用的字段:
match: PropTypes.shape({ params: PropTypes.shape({ experiment: PropTypes.string,}),}).isrequired,
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。