@testing-library/react-native 不存在导出成员waitForElement的问题求助
@testing-library/react-native 不存在导出成员waitForElement的问题求助
嗨,我来帮你解决这个问题!其实核心原因很简单——waitForElement这个API在新版的@testing-library/react-native里已经被移除了,它的功能完全被你已经导入的waitFor替代啦。
你之前看到的文档大概率是针对旧版本的,所以才会出现认知差异。现在只需要把代码里的waitForElement用法替换成waitFor就行,甚至可以把原本拆分的逻辑合并,让代码更简洁。
修改后的测试代码参考如下:
import React from 'react'; import { waitFor } from '@testing-library/react-native'; // 无需再导入waitForElement import renderer from 'react-test-renderer'; import App from './App'; jest.useFakeTimers(); describe('App initialized', () => { it('has 1 child', async () => { // 用waitFor包裹组件渲染与断言逻辑,实现原本waitForElement的等待效果 await waitFor(() => { const element = renderer.create(<App />).toJSON() as any; expect(element).not.toBeNull(); expect(element.children.length).toBe(1); }); }); });
补充说明下:从@testing-library/react-native v11版本开始,waitForElement就被官方废弃并移除了,官方推荐统一使用waitFor来处理所有异步等待场景,不管是等待元素出现、状态更新还是断言执行,waitFor都能胜任。
改成上面的写法后,不仅能解决“导出成员不存在”的报错,也能完美实现你原本想要的测试逻辑哦!
备注:内容来源于stack exchange,提问作者Fiddle Freak
相关产品推荐
相关产品推荐

