我正在尝试使用React路由器v4设置项目,我设法让它工作得很好。
但是,当我尝试将函数实现回滚到顶部according to this docs时,会出现此错误:
警告:不建议通过主React包访问PropTypes。请改用npm中的prop-types包。
我已经下载了React prop-types
包。仅当我在组件中设置withRouter()时才会出现此错误,例如:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
import { withRouter } from 'react-router';
class ScrollTop extends Component {
componentDidUpdate(prevProps) {
if ( this.props.location !== prevProps.location ) {
window.scrollTo(0, 0);
}
}
render() {
return (
<div>{ this.props.children }</div>
);
}
}
export default withRouter(ScrollTop);
上面的代码会生成错误。但是如果我使用下面的代码:
import React, { Component } from 'react';
import PropTypes from 'prop-types';
class ScrollTop extends Component {
// ..same as code above..
}
export default ScrollTop;
这不会显示错误,但在更改路线时也不会回滚到顶部。
我该如何解决这个问题?或者我做错了什么?
答案 0 :(得分:1)
React 15.5.0 added this deprecation warning。即使您从其新位置导入PropTypes,最新版本反应路由器v4也不是。 PR for it已合并,但尚未发布。
您的选择是等待react-router发布版本(我希望很快就会发布),从master安装react-router,或者将React降级到15.4.0。