在React Router 4中使用链接

时间:2018-07-06 05:18:07

标签: reactjs react-router react-redux

我正在关注使用旧版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的渲染方法。       在Book中(由Connect(Book)创建)       在Connect(Book)中(由Route创建)       在途中       在div       在路由器中(由BrowserRouter创建)       在BrowserRouter中       在提供商中

此行有什么问题,我该怎么解决?

2 个答案:

答案 0 :(得分:2)

问题是因为我有import { Link } from 'react-router'而不是import { Link } from 'react-router-dom'。一旦做出更改,一切都会正常进行。感谢karaxuna弄清楚了这一点。

selmansamet也是正确的,即需要反引号,但这并不是问题的根源。原始代码的确有反引号,但我将其改为单引号,以查看是否可以解决问题。它没。

答案 1 :(得分:0)

在JSX中,字符串必须用反引号引起来,而不是双引号或单引号。

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