Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript React Router 1.0.0未捕获错误:不变冲突:元素类型无效_Javascript_Reactjs_React Router - Fatal编程技术网

Javascript React Router 1.0.0未捕获错误:不变冲突:元素类型无效

Javascript React Router 1.0.0未捕获错误:不变冲突:元素类型无效,javascript,reactjs,react-router,Javascript,Reactjs,React Router,我在使用react路由器时遇到以下错误:- 谁能告诉我哪里错了 未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象 var React = require('react'); var ReactDOM = require('react-dom'); var Router = require('react-router'); var Route = Router.Route; var App = React.createClass({

我在使用react路由器时遇到以下错误:-

谁能告诉我哪里错了

未捕获错误:不变冲突:元素类型无效:需要字符串(对于内置组件)或类/函数(对于复合组件),但得到:对象

var React = require('react');
var ReactDOM  = require('react-dom');
var Router = require('react-router');
var Route = Router.Route;


var App = React.createClass({
  render: function(){
    return (
  <div>
  <h1>Welcome</h1>
    {this.props.children}
  </div>
);
}
});

var Login = React.createClass({
  render: function(){
    return (    
      <div className="large-3 medium-6 large-centered medium-centered columns"> 
        <h1>Login Page</h1>
      </div>

  ) }
});

ReactDOM.render((
  <Router>
    <Route path="/" component={App}>
      <Route path="login" component={Login}/>      
    </Route>
  </Router>
   ), document.getElementById('content'));
var React=require('React');
var ReactDOM=require('react-dom');
var-Router=require('react-Router');
var-Route=路由器.Route;
var App=React.createClass({
render:function(){
返回(
欢迎
{this.props.children}
);
}
});
var Login=React.createClass({
render:function(){
报税表(
登录页面
) }
});
ReactDOM.render((
),document.getElementById('content');

路由器
是下列文件中的命名导出:


下面几行解决了我的错误

var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;

首先,很抱歉我的英语不好。 我也遇到了同样的问题,几个小时后,是如何解决的:

1-您应该导入正确的模块,如Saroj所说:

var ReactDOM = require('react-dom');
var ReactRouter = require('react-router');
var Router = ReactRouter.Router;
var Route = ReactRouter.Route;
var IndexRoute = ReactRouter.IndexRoute;
2-之后,您可能会遇到类似“localhost:3000/#/?k=ckuvup”这样的url问题。因此,请这样做:

npm install history --save
…那么

var createBrowserHistory = require('history/lib/createBrowserHistory');
并为此更改路由器配置:

ReactDOM.render((
  <Router history={createBrowserHistory()}>
    <Route path="/" component={App}>
      <Route path="login" component={Login}/>      
    </Route>
  </Router>
), document.getElementById('content'));
ReactDOM.render((
),document.getElementById('content');
…阅读以了解为什么要这样做


在做了所有这些事情之后,例如,当您使用gulp服务器提供服务时,可能会遇到一些麻烦。我建议你去看看

您的
Login
组件看起来如何?更新的登录组件可能是您缺少
module.exports=Login
module.exports=App行。我可能是错的。如果我在上面加上一行,它会给出错误:未捕获的语法错误:意外的标记{非常感谢。这太微妙了:路由器不是ReactRouter。它是ReactRouter.Router。我在这上面花了3个小时。每次扫描都很容易浏览!
ReactDOM.render((
  <Router history={createBrowserHistory()}>
    <Route path="/" component={App}>
      <Route path="login" component={Login}/>      
    </Route>
  </Router>
), document.getElementById('content'));