我正在关注使用旧版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中 在提供商中
此行有什么问题,我该怎么解决?
答案 0 :(得分:2)
问题是因为我有import { Link } from 'react-router'
而不是import { Link } from 'react-router-dom'
。一旦做出更改,一切都会正常进行。感谢karaxuna弄清楚了这一点。
答案 1 :(得分:0)
在JSX中,字符串必须用反引号引起来,而不是双引号或单引号。
<td><Link to={`/books/${b.id}`}>View</Link></td>