web-dev-qa-db-ja.com

flatMapが糸テストのJavaScriptで機能しない

私のコンポーネントメソッドにいくつかのコードがあります sing 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
13
Nick Brady

それだけの価値があるので、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、現在持っているもので動作します。

2
Drew Reese