【问题标题】:'react-router' does not contain an export named 'Link'“react-router”不包含名为“Link”的导出
【发布时间】:2017-10-31 05:05:58
【问题描述】:

我正在使用 react-router@4.1.1

└─┬ react-router@4.1.1
  ├─┬ history@4.6.1
  │ ├── resolve-pathname@2.1.0
  │ └── value-equal@0.2.1
  └── warning@3.0.0

附加反应路由器链接时,此消息出现在开发中

./src/containers/FilterLink.js
37:4-8 'react-router' does not contain an export named 'Link'.

这是导入代码:

import React from 'react';
import { Link } from 'react-router';

顺便说一下,将版本更改为 react-router@2.0.1 似乎正在工作。
有谁知道 Link 是否已从 react-router 中删除?林克怎么了?

如果没有,为什么会出现此错误?

【问题讨论】:

    标签: javascript reactjs react-router


    【解决方案1】:

    4.x 引入了一些重大更改,您需要从 react-router-dom 导入 Link

    CommonJS

    var Link = require('react-router-dom').Link
    

    ES6 模块

    import { Link } from 'react-router-dom'
    

    在这里查看更多背景信息:https://github.com/ReactTraining/react-router/tree/master/packages/react-router-dom

    【讨论】:

    • 与 react-router 中的 browserHistory 结合使用是否会产生副作用?
    • @Karlos 如果您执行<Link to={browserHistory.push('/foo')}> 之类的操作,则很可能需要进行更改。他们确实完全重写了 4.x - 看看这里:stackoverflow.com/questions/42701129/…
    • 我看到路由器 4.x 使用 react-dom 渲染中断了渲染流程,即使使用路由器,路由来自 react-router-dom。我想尽量减少针对此更改的代码重构,因此决定是使用 4.x 与兼容版本的 react-dom 还是继续使用 react-router
    • @Karlos 无意中点击了聊天,随意无视。而且我认为这是一个安全的电话,AFAIK,他们将无限期地支持 3.x,因此根本不需要升级到 4.x。
    • 别忘了安装react-router-dom 包而不是react-router: npm install --save react-router-dom
    猜你喜欢
    • 2018-09-22
    • 2021-06-21
    • 1970-01-01
    • 2019-12-04
    • 2019-06-28
    • 2018-03-12
    • 2019-08-15
    • 1970-01-01
    • 2017-10-25
    相关资源
    最近更新 更多