我有一个在其componentDidMount
方法中多次设置状态的组件。例如:
componentDidMount = async () => {
this.setState({ waiting: true });
try {
const data = await this.fetchData();
this.setState({ data })
} catch (err) {
} finally {
this.setState({ waiting: false });
}
};
使用类似于以下内容的渲染方法:
render() {
if (this.state.waiting) {
return (
<View style={{ flex: 1 }}>
<ActivityIndicator size="large" />
</View>
);
}
return (
... actual view ...
)
}
我可以使用react-native-testing-library
const tree = testing.render(<HomeScreen {...props} />);
但是我只得到了等待。但是,当我逐步进行测试时,其他渲染器会被击中。
所以快照测试似乎只捕获了 first 渲染。有没有办法给我 final 渲染?
答案 0 :(得分:0)
结果是我需要等待微任务。
await testing.flushMicrotasksQueue();
有花招