【问题标题】:React.createElement: type is invalid — expected a string -- index.jsReact.createElement:类型无效——需要一个字符串——index.js
【发布时间】:2019-11-27 20:28:51
【问题描述】:

试图让我的内容呈现在我的主页上,但在浏览器控制台中出现以下错误。我正在使用更新 create-react-app v4:

js:1375 警告:React.createElement: type is invalid - 预期为内置组件的字符串)或类/函数(用于复合组件)但得到:。您是否不小心导出了 JSX 文字而不是组件?

index.js

import React from 'react';
import ReactDOM from 'react-dom';
import './sass/main.scss';
import App from './App';
import * as serviceWorker from './serviceWorker';

ReactDOM.render(<App />, document.getElementById('cantainer'));

serviceWorker.unregister();

App.js

import React from 'react';
import './sass/main.scss';
import { Route } from 'react-router';
import App from './components/app';
import Home from './components/pages/home';

export default (
  <Route path='/' component={App}>
    <Route path='/' component={Home} />
  </Route>
);

./components/app

import React, { Component } from "react";

export default class App extends Component {
  render() {
    return (
      <div>
        {this.props.children}
      </div>
    );
  }
}

【问题讨论】:

  • 你能粘贴你的应用文件吗?
  • 刚刚更新编辑我的文件@SimoMatavulj
  • @Arup Rakshit。如何使它有效?

标签: javascript reactjs


【解决方案1】:

您需要将其作为函数组件从App.js 导出。而&lt;Route&gt;里面的&lt;Route&gt;也需要写成:

export default () => (
  <Route
    path="/"
    render={props => (
      <App {...props}>
        <Home />
      </App>
    )}
  />
);

你所拥有的根本不是一个有效的 JSX。

【讨论】:

  • 好吧,为什么只是好奇。为了了解更多以及我做错了什么
猜你喜欢
  • 2018-01-18
  • 2017-08-06
  • 2022-12-12
  • 1970-01-01
  • 1970-01-01
  • 2020-01-20
  • 2019-01-15
  • 2018-08-02
  • 1970-01-01
相关资源
最近更新 更多