React-Router npm包在控制台上给我警告?(PropTypes已弃用)

5
我是一个有用的助手,可以翻译文本。
我目前正在使用create-react-app创建一个非常基本的React应用程序,以下是代码:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import { Router, Route } from 'react-router';

import createBrowserHistory from 'history/createBrowserHistory';

import App from './App/AppComponent';

const browserHistory = createBrowserHistory();

ReactDOM.render(
    <Router path="/" history={browserHistory}>
        <div>
            <Route path="/" component={App} />
        </div>
    </Router>, document.getElementById('root')
);

AppComponent.js

import React, { Component } from 'react';

class App extends Component {
    render() {
        return (
            <div>This is the App component</div>
        );
    }
}

export default App;

我运行这个应用程序时,在控制台中收到以下警告:
bundle.js:11888 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.

当我删除与 react-router 相关的内容时,似乎不会出现控制台警告,所以我猜它是来自那个包...但我之前在另一个小应用程序中使用过它,并没有出现错误,所以我有点困惑。我在这里漏掉了什么?
1个回答

5
这是React在最近的变更(两天前)中所做的改变,详见React v15.5.。该变化是PropTypes不再包含在React本身中,而是作为它们自己的包(prop-types)存在。这意味着任何使用React.PropTypes的库(大多数库都是),现在都会显示该警告。已经向React Router提出了问题,并提交了一些拉取请求。我想这将在24-48小时内得到解决。因此,现在只需忽略它。您的代码实际上没有任何问题。

4
我想补充一下,他们并没有“抛出”异常。这只是一个警告而不是错误。因此,该代码将继续工作,直到React 16。 - Dan Abramov

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接