Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.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.createElement:类型无效-应为字符串(对于内置组件)或类/函数(对于复合组件),但Get:未定义_Javascript_Reactjs_React Native_React Router - Fatal编程技术网

Javascript React.createElement:类型无效-应为字符串(对于内置组件)或类/函数(对于复合组件),但Get:未定义

Javascript React.createElement:类型无效-应为字符串(对于内置组件)或类/函数(对于复合组件),但Get:未定义,javascript,reactjs,react-native,react-router,Javascript,Reactjs,React Native,React Router,我有一个简单的路由程序,给出了标题中提到的错误。下面是我的代码 App.js import React from 'react'; class App extends React.Component { render() { return ( <div> <h2>hello</h2> {this.props.children}

我有一个简单的路由程序,给出了标题中提到的错误。下面是我的代码

App.js

import React from 'react';

class App extends React.Component {
    render() {
        return (
            <div>
                <h2>hello</h2>
                {this.props.children}
            </div>
        );
    }
}

export default App;
从“React”导入React;
类应用程序扩展了React.Component{
render(){
返回(
你好
{this.props.children}
);
}
}
导出默认应用程序;
home.js

import React from 'react';

export default class Home extends React.Component {
    render() {
        return (
            <h1>Hello World!</h1>
        )
    }
}
从“React”导入React;
导出默认类Home扩展React.Component{
render(){
返回(
你好,世界!
)
}
}
main.js

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Route, IndexRoute } from 'react-router-dom';

import Home from './components/home';
import App from './app';

ReactDOM.render(
    <Router>
        <Route path="/" component={App}>
            <IndexRoute component={Home} />
        </Route>
    </Router>,
    document.getElementById('app')
);
从“React”导入React;
从“react dom”导入react dom;
从“react Router dom”导入{BrowserRouter as Router,Route,IndexRoute};
从“./components/Home”导入Home;
从“./App”导入应用程序;
ReactDOM.render(
,
document.getElementById('app')
);

它正在打印hello(来自app.js)

您的
app
组件没有子组件,因此无需尝试渲染它们。它基本上会使您尝试渲染
未定义的
。因此,基本上只需删除该行:

class App extends React.Component {
    render() {
        return (
            <div>
                <h2>hello</h2>
            </div>
        );
    }
}
类应用程序扩展了React.Component{
render(){
返回(
你好
);
}
}

尝试将其添加到主文件中

import React from 'react';
import ReactDOM from 'react-dom';
import { BrowserRouter as Router, Route, IndexRoute } from 'react-router-dom';

import Home from './components/home';
import App from './app';

ReactDOM.render(
    <Router>
        <div>
          <App />
          <Route exact path="/" component={Home} />
        </div>
    </Router>,
    document.getElementById('app')
);
从“React”导入React;
从“react dom”导入react dom;
从“react Router dom”导入{BrowserRouter as Router,Route,IndexRoute};
从“./components/Home”导入Home;
从“./App”导入应用程序;
ReactDOM.render(
,
document.getElementById('app')
);

您是否有其他错误信息。定义了什么组件?它表示子组件未定义。基本上我觉得它说home.js是未定义的。IndexRoute不是react router v4中的组件。谢谢。它起作用了。但是,如果链接变大,你能评论一下这将如何发展吗。说like/home/page/something/:像这样的人。