首页 > 解决方案 > React Router 的 ES6 导入错误

问题描述

我遇到的错误非常令人困惑,以至于我不知道在哪里寻找解决方案,而且这些错误令人担忧,因为它们似乎隐藏在图书馆的深处。
我正在使用样板应用程序 ( react-boilerplate) 和表单库 ( react-final-forms, react-final-form-arrays) - 导入时会导致错误和奇怪的行为。可重现的步骤如下。

  1. 从应用程序正常运行的状态:
  2. import { FieldArray } from 'react-final-form-arrays'到我的主页
  3. 热重载时,主页重新渲染失败,因此页眉和页脚显示但主页不重新渲染,但控制台上没有错误。如果刷新页面,结果相同
  4. 导航到另一个页面,然后导航回主页——现在使用路由器——这会引发错误(注意页面上尚未使用导入):

react.development.js?72d0:207 警告:React.createElement:类型无效 - 需要一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:对象。

检查LoadableComponent. 在 LoadableComponent(由 Route 创建) 在 Route(由 App 创建) 在 Switch(由 App 创建) 在 div(由 Context.Consumer 创建) 在 StyledComponent(由 App__AppWrapper 创建) 在 App 中 在 Router(由 ConnectedRouter 创建) 在 ConnectedRouter(由创建by Connect(ConnectedRouter)) in Connect(ConnectedRouter) in IntlProvider (由 LanguageProvider 创建) 在 LanguageProvider (由 Connect(LanguageProvider) 创建) in Connect(LanguageProvider) 在 Provider

  1. 删除导入,一切恢复正常。

围绕花括号导入的问题通常被回答为命名导入和默认导入之间的区别一样简单。显然这里的事情更复杂。(我都试过了,但它肯定应该被命名)。问题与加载脚本有关吗?

标签: javascriptreactjsreact-final-formreact-final-form-arrays

解决方案


在撞墙 3 小时后,这是一个版本控制问题。npm install 默认情况下安装的依赖项之一的旧版本比需要的要旧。可能可以关闭这个问题


推荐阅读