flatMap 在纱线测试中不起作用 javascript
flatMap doesn't work in yarn test javascript
我的组件方法中有一些代码 using flatMap
。该代码在浏览器中运行良好,但是当 运行 代码使用 yarn test
时 flatMap
方法不存在。有人以前见过这样的东西吗?
● Click Events › should copy table data
TypeError: children.map(...).flatMap is not a function
181 | const dataKeys = children
182 | .map(({ $: { data: dataKey } }) => dataKey)
> 183 | .flatMap(k => k.split(LEVEL_DELIMITER));
| ^
编辑 - 可重现的例子:创建了一个 CRA 基础并添加了这个简单的测试:
it('can flatMap', () => {
[1, 2, 3, 4].flatMap(x => [x * 2]);
});
遇到同样的错误:
FAIL src/App.test.js
● can flatMap
TypeError: [1,2,3,4].flatMap is not a function
at Object.<anonymous>.it (src/App.test.js:12:16)
at new Promise (<anonymous>)
at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
✓ renders without crashing (4ms)
✕ can flatMap
我的一位同事找到了解决方案。 Node.js 显然不支持 flatMap
:
flatMap
现在在节点 11+ 中受支持,如下所述,请参阅相同的 link。
对于它的价值,使用 react polyfill 包也对我有用。我可以控制我自己的本地环境,但我必须使用的构建系统受到更多限制并被多个团队使用。
npm 包:react-app-polyfill
用法:
// setupTests.js (jest)
// Using ie9 polyfills as the "kitchen sink" of polyfills
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
这适用于我目前拥有的 Node v10.16.0。
我的组件方法中有一些代码 using flatMap
。该代码在浏览器中运行良好,但是当 运行 代码使用 yarn test
时 flatMap
方法不存在。有人以前见过这样的东西吗?
● Click Events › should copy table data
TypeError: children.map(...).flatMap is not a function
181 | const dataKeys = children
182 | .map(({ $: { data: dataKey } }) => dataKey)
> 183 | .flatMap(k => k.split(LEVEL_DELIMITER));
| ^
编辑 - 可重现的例子:创建了一个 CRA 基础并添加了这个简单的测试:
it('can flatMap', () => {
[1, 2, 3, 4].flatMap(x => [x * 2]);
});
遇到同样的错误:
FAIL src/App.test.js
● can flatMap
TypeError: [1,2,3,4].flatMap is not a function
at Object.<anonymous>.it (src/App.test.js:12:16)
at new Promise (<anonymous>)
at Promise.resolve.then.el (node_modules/p-map/index.js:46:16)
at <anonymous>
at process._tickCallback (internal/process/next_tick.js:188:7)
✓ renders without crashing (4ms)
✕ can flatMap
我的一位同事找到了解决方案。 Node.js 显然不支持 flatMap
:
flatMap
现在在节点 11+ 中受支持,如下所述,请参阅相同的 link。
对于它的价值,使用 react polyfill 包也对我有用。我可以控制我自己的本地环境,但我必须使用的构建系统受到更多限制并被多个团队使用。
npm 包:react-app-polyfill
用法:
// setupTests.js (jest)
// Using ie9 polyfills as the "kitchen sink" of polyfills
import 'react-app-polyfill/ie9';
import 'react-app-polyfill/stable';
这适用于我目前拥有的 Node v10.16.0。