react-native - 等待反应导航过渡完成
问题描述
我正在寻找一种在 react-navigation 中调度导航操作的方法,并在触发下一步之前等待它完全完成。
就像是:
await dispatch({
type: 'Navigation/goBackTo',
routeName: 'Main',
})
dispatch(anotherAction())
目前我正在使用 setTimeout 解决方法。
解决方案
与 react-navigation 无关,但仍然有用:来自 react-native 的InteractionManager API。
有一个方法runAfterInteractions()将在所有动画完成后调用,所以在导航的情况下,我发现它是一个方便的工具。例如,您可以执行以下操作:
class Main extends Component {
componentDidMount() {
// 1: Component has been mounted off-screen
InteractionManager.runAfterInteractions(() => {
// 2: Component is done animating
// 3: Do your anotherAction dispatch() here
});
}
}
推荐阅读
- php - 为 mysql pdo 查询清理表单提交的数据
- r - 计算 R 中两个不同数据帧的两个时间戳之间的行数
- api - 为什么 Telethon 发送文件这么慢?
- python - 如何将 txt 文件导入到 ipickle 文件中?
- scrapy - 无法使用 scrapy 抓取页面网页的部分内容
- javascript - VueJs 不显示从 axios 承诺中获取的图像,然后将图像 url 放入 src
- java - 用数字而不是索引编辑arraylist
- java - 实现缓存框架(ehcache)以在服务器启动期间缓存 Lookupcode 和 Location 下拉值
- angular - 如何创建自定义原理图以创建新的角度项目和一些文件
- android - 如何在没有 READ_CALL_LOG 权限的情况下在 Android 9 中获取来电和去电号码?