いくつかの統合テストを行うために Jest でアプリケーションをレンダリングしようとすると、次のエラーが発生します。
TypeError: Cannot read property 'createNode' of undefined
at AnimatedParam.createNode [as __nativeInitialize] (node_modules/react-native-reanimated/src/core/AnimatedNode.js:126:24)
at AnimatedParam.__nativeInitialize [as __attach] (node_modules/react-native-reanimated/src/core/AnimatedNode.js:71:10)
at new __attach (node_modules/react-native-reanimated/src/core/AnimatedParam.js:11:10)
at createAnimatedParam (node_modules/react-native-reanimated/src/core/AnimatedParam.js:71:10)
at createAnimatedFunction (node_modules/react-native-reanimated/src/core/AnimatedFunction.js:38:17)
at Object.<anonymous> (node_modules/react-native-reanimated/src/derived/interpolate.js:17:39)
それが不平を言っているコードはreact-native-reanimated
次のようになります。
__nativeInitialize() {
if (!this.__initialized) {
ReanimatedModule.createNode(this.__nodeID, { ...this.__nodeConfig });
this.__initialized = true;
}
}
AndはライブラリからのReanimatedModule
型エイリアスです。それ以上に、この問題の解決に役立つ有用な情報は見つかりませんでした。NativeModule
react-native
ここで特に奇妙なのは、私がreact-native-reanimated
自分のコード ベースで直接使用していないことです。私が知る限り、それを使用している唯一のライブラリ コンポーネントは、テスト対象のコンポーネントでレンダリングされていません。
この問題を再現するための合理的な方法でコードをスリム化することはできませんでした。問題のコードは企業の著作権によって保護されているため、リポジトリを共有できません。小さな例でエラーを再現しようとし続けますが、誰かがこの問題を経験したことがある場合に備えて、この質問を公開したいと思いました.