关于react组件mock异步的问题
来源:5-3 React 环境中配置 Jest(2)

Osuribaba
2019-08-08
请问老师,我在react组件挂载完后发个异步请求,然后给这个请求mock了,假数据也传进.then,触发setState了。
但是在测试代码中通过 .debug() 打印得到的还是setState更新之前的组件树。
测试代码:
里头mock的这几个是封装的axios,testData是假数据
mock代码:
react代码:
在react的useEffect(相当于componentDidMount)里执行了刚才上头mock的方法,然后假数据也成功传进了.then的res里。之后触发了hooks的setState,更新了UI。
按照我的理解,把异步方法mock了之后这请求就是同步的了,那setState应该也是同步被触发了。但是在测试代码中打印debug得到的还是UI更新之前的组件树。
请问老师遇到过这种情况么?
写回答
1回答
-
Osuribaba
提问者
2019-08-12
已经解决。在测试中使用setImmediate,在setImmediate中使用 .update() 后可以得到更新后的组件树
00
相似问题