代码之家  ›  专栏  ›  技术社区  ›  kojow7

在react路由器4中使用link

  •  1
  • kojow7  · 技术社区  · 7 年前

    我正在学习一个使用旧版本react router的教程。除了以下代码外,我已经更新并运行了它:

    {this.props.books.map((b, i) => <tr key={i}>
        <td>{b.title}</td>
        <td><Link to={`/books/${b.id}`}>View</Link></td>
    </tr>)}
    

    我发现了一个错误 <Link to={`/books/${b.id}`}>View</Link> .

    这一行有几个不同的错误。第一个错误是:

    警告:react.createElement:类型无效--应为字符串 (用于内置组件)或类/函数(用于组合 但得到:未定义。你可能忘了出口 它在文件中定义的组件,或者您可能混淆了 默认和命名导入。

    检查的渲染方法 Book 是的。 书内(由connect(book)创建) in connect(book)(按路由创建) 在途中 在div中 在路由器中(由BrowserRouter创建) 浏览器路由器 在提供程序中

    这条线有什么问题,我能做些什么来修理它?

    2 回复  |  直到 7 年前
        1
  •  2
  •   kojow7    7 年前

    问题是因为我 import { Link } from 'react-router' 而不是 import { Link } from 'react-router-dom' 是的。一旦我做了改变,一切正常。多亏卡拉什娜弄明白了这一点。

    塞尔曼萨米特也认为需要反拍是正确的,但并不是真正的问题根源。原始代码确实有反勾号,但我将它们改为单引号,以查看这是否可以解决问题。没有。

        2
  •  0
  •   sametcodes Tetramputechture    7 年前

    在jsx中,字符串必须在 回音 引号,不是双引号或单引号。

    <td><Link to={`/books/${b.id}`}>View</Link></td>
    
    推荐文章