React-Router npm包在控制台中给我警告?(不推荐使用PropTypes)

sna*_*nda 4 javascript reactjs react-router react-redux

我有一个非常基本的反应应用程序我正在使用create-react-app创建当前,这是代码:

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')
);
Run Code Online (Sandbox Code Playgroud)

AppComponent.js

import React, { Component } from 'react';

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

export default App;
Run Code Online (Sandbox Code Playgroud)

运行此应用程序时,我在控制台中收到以下警告:

bundle.js:11888 Warning: Accessing PropTypes via the main React package is deprecated. Use the prop-types package from npm instead.
Run Code Online (Sandbox Code Playgroud)

当我删除与react-router相关的东西时,我似乎没有得到控制台警告所以我的猜测是它来自那个包...但我之前在另一个小应用程序中使用过它并且没有错误所以我有点困惑.

我在这里错过了什么?

Tyl*_*nis 5

这是React在React v15.5中做出的最新变化(2天前).这个变化PropTypes不再包含在React本身中,而是有自己的package(prop-types).这意味着正在使用的任何库(React.PropTypes大多数正在使用它们)现在都会显示此警告.已经专门向React Router提交了一个问题,并且还提交了一些拉取请求.我想这会在接下来的24-48小时内得到修复.所以现在,请忽略它.您的代码没有任何问题.

  • 我想补充说他们不是*扔*.这是一个警告而不是错误.所以代码一直工作到React 16. (4认同)