【发布时间】:2018-07-20 12:54:38
【问题描述】:
尝试使用 Jest 测试 React 应用。运行我的代码时出现错误:
FAIL src\App.test.js
● Test suite failed to run
C:/Users/user1/Projects/map-editor/src/App.js: Unexpected token (40:33)
38 | <div className="Main-content">
39 | <Sidebar
> 40 | parentOnCreatePoint={::this.handleSidebarCreateCallback}
| ^
41 | parentOnChangePoint={::this.handleSidebarChangeCallback}
我的 bable webpack 配置如下所示:
plugins: ['transform-runtime'],
presets: ['env', 'react', 'stage-0','stage-2'],
我该如何解决?
【问题讨论】:
-
阅读here for more info on the
::operator。我要补充一点,将回调绑定在这样的反应渲染方法中是一个非常的坏主意。这意味着您创建了一个新方法,每个渲染和反应都无法优化,因为道具正在改变。 -
@caesay 好的,谢谢。不知道,改成标准的.bind(this)。
-
你没有抓住重点,你不应该在这样的反应道具中使用
.bind(。您应该在组件构造函数中执行此操作。每次调用bind时,都会创建一个新函数。 daveceddia.com/avoid-bind-when-passing-props
标签: javascript reactjs babeljs jestjs ecmascript-next