React TypeError:__ WEBPACK_IMPORTED_MODULE_0_react __。PropTypes未定义

时间:2018-04-04 15:43:54

标签: reactjs react-router

我正在使用路由器制作反应应用程序。它有2个路由器;发布和个人资料。它们的代码如下:

Posts: import React,{Component} from 'react';


class Posts extends Component{
    render(){
        return <div>  Posts </div>
    }
}

export default Posts;
Profile:import React,{Component} from 'react';


class Profile extends Component{
    render(){
        return <div>  Profile </div>
    }
}

export default Profile;
and the index.js is:import React,{Component} from 'react';
import ReactDOM from 'react-dom';
import {BrowserRouter, Route} from 'react-router-dom';
import PropTypes from 'prop-types';

//COMPONENTS
import Posts from './Components/posts';
import Profile from './Components/profile';


class App extends Component{

    render(){
        return <div> home </div>

    }
}


ReactDOM.render(
    <BrowserRouter>
    <div>
    <Route path="/posts" component={Posts}>  </Route>

    <Route path="/profile" component={Profile}>  </Route>

    </div>
    </BrowserRouter>

    ,document.querySelector('#root'))

我收到以下错误:React TypeError: __WEBPACK_IMPORTED_MODULE_0_react__.PropTypes is undefined

以下是错误的屏幕截图:https://imgur.com/6ijKefx

我无法理解。我究竟做错了什么?

5 个答案:

答案 0 :(得分:4)

我遇到了同样的问题,后来又发现我的导入语句中有错字。

代替:

import React from "react"

我有:

import {React} from "react"

答案 1 :(得分:1)

您使用的是什么版本的React?

升级到React 16时出现此错误,并将package.json中的反应行更改为:

"react-dom": "^15.1.1",
"react": "^15.1.1",

然后运行npm installnpm start为我修复了它。

答案 2 :(得分:1)

import PropTypes from 'prop-types';
  自从React v15.5起,

React.PropTypes已经转移到另一个包中。   Please use the prop-types library instead.

答案 3 :(得分:0)

我在packages.json文件中修改了这些软件包的版本

"react": "^0.14.7",
"react-dom": "^0.14.7",
"react-redux": "^5.1.0",
"redux": "^4.0.1",

然后运行“ npm install”并“ npm start”运行

答案 4 :(得分:-1)

通过更改

将其修复为“ react-dom”:“ ^ 16.6.3”
import React,{Component} from 'react';    
class App extends Component{
render(){
    return <div> home </div>
  }
}

import React from 'react';    
class App extends React.Component{
render(){
    return <div> home </div>
  }
}

希望它会有所帮助:)