【问题标题】:React warning error stops compiling the appReact 警告错误停止编译应用程序
【发布时间】:2016-12-18 06:21:11
【问题描述】:

我有以下几点:

nav.jsx 组件:(到目前为止一切正常)

import React from "react";
import Link from "react-router";

class Nav extends React.Component {
    render() {
        return (
            <ul>
                <li>
                    <Link to="/test1">test1</Link>
                </li>
                <li>
                    <Link to="/test2">test2</Link>
                </li>
            </ul>
        );
    }
}

export default Nav;  

一个路由组件如下:

routes.js

import React from "react";
import { Route, Router, IndexRoute } from "react-router";
import ReactDOM from "react-dom";

import App from "./index.jsx";
import Test1 from "./test1.jsx";
import Test2 from "./test2.jsx";

ReactDOM.render(
    <Router>
        <Route path="/" component={App} />
        <Route path="/test1" component={Test1} />
        <Route path="/test2" component={Test2} />
    </Router>,
    document.getElementById("app")
);

还有一个像这样的 index.jsx:

import React from "react";
import { render } from "react-dom";

import Nav from "./nav.jsx";

class App extends React.Component {
    render() {
        return (
            <div>
                <Nav />
                <p> Hello React!</p>
            </div>
        );
    }
}

export default App;

但是我在控制台中收到以下错误:

invariant.js:38 Uncaught Invariant Violation:元素类型无效:期望字符串(对于内置组件)或类/函数(对于复合组件),但得到:未定义。检查Nav的渲染方法。

在我添加“导航”组件之前一切正常...

【问题讨论】:

  • 你是否将 React 导入到你的 Nav 组件中?
  • 是的,我有 "import React from 'react';"
  • 在渲染方法中是否没有链接组件?
  • 它根本不渲染,空屏
  • 你可以试试import { Link } from 'react-router'而不是import Link from 'react-router';

标签: javascript reactjs webpack jsx


【解决方案1】:

你可以试试下面的

也请看https://github.com/reactjs/react-router/blob/master/docs/Introduction.md

import React from 'react';
import {render} from 'react-dom';

import Nav from './nav.jsx';

class App extends React.Component {
  render () {
    return (
      <div>
        <Nav />
        <p> Hello React!</p>
        {this.props.children}
      </div>
    );
  }
}

export default App;

【讨论】:

    【解决方案2】:
    import {Link} from 'react-router'
    

    上面应该做你的工作。可以试一试吗?

    【讨论】:

    猜你喜欢
    • 2020-06-11
    • 2016-12-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多