You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

React Native测试报错:TypeError: interpolateNode is not a function

React Native测试报错:TypeError: interpolateNode is not a function

兄弟,我之前升级Reanimated版本时也碰到过类似的测试报错,给你几个具体的排查方向,你可以挨个试试:

  • 检查测试环境的Reanimated Mock配置:Reanimated v2的原生函数在Jest测试环境里需要特殊的mock处理,默认的Jest环境不会自动识别这些函数。你可以在项目的jest.setup.js(或者对应的测试配置文件)里添加官方推荐的mock代码:

    jest.mock('react-native-reanimated', () => {
      const Reanimated = require('react-native-reanimated/mock');
      
      // 修复call方法的mock,避免额外报错
      Reanimated.default.call = () => {};
      
      return Reanimated;
    });
    

    加完之后重启测试,看看能不能解决问题。

  • 确认代码中的导入与调用方式:虽然你说node_modules里函数存在,但还是要检查下Drawer.tsx第518行的调用逻辑:是不是导入interpolateNode的路径正确?比如是不是写成了import { interpolateNode } from 'react-native-reanimated';?另外,有些Reanimated v2的版本里,interpolateNode可能是interpolate的别名,你可以试试替换成interpolate调用看看会不会生效。

  • 清除依赖缓存并重装:缓存问题有时候会导致模块加载异常,你可以执行以下步骤:

    1. 删除node_modules文件夹
    2. 删除package-lock.json(如果用npm)或者yarn.lock(如果用yarn)
    3. 执行npm install或yarn install重新安装依赖
    4. 执行npm start -- --reset-cache清除Metro缓存,再重新运行测试
  • 排查测试文件的环境配置:看看你的测试文件有没有设置正确的React Native测试环境,比如有没有在文件顶部加上/** @jest-environment react-native */?错误的环境配置可能导致Reanimated模块无法正常加载。

  • 检查是否有其他Mock干扰:如果项目里有其他第三方库的mock,有可能覆盖了Reanimated的导出。你可以暂时禁用其他非必要的mock,只保留Reanimated的mock,看看测试能不能正常运行,以此排查是不是冲突问题。

备注:内容来源于stack exchange,提问作者Olcay Ertaş

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.22 10:34:40