react-native - 如何在单个useEffect中使用焦点和模糊侦听器反应原生
问题描述
正如您在 useEffect 中所知道的,unsubscribe
如果我们将任何侦听器分配给unsubscribe
const,我们将在最后返回 ,如下所示
当我们使用
useEffect(() => {
const unsubscribe = navigation.addListener('focus', () => {
// code
})
return unsubscribe;
}, [navigation]);
如我所愿
useEffect(() => {
const unsubscribe = navigation.addListener('focus', () => {
// code
})
const unsubscribe2 = navigation.addListener('blur', () => {
// code
})
// need to return both listeners
}, [navigation]);
解决方案
你可以cleanup
喜欢这个
useEffect(() => {
navigation.addListener('focus', handler)
navigation.addListener('blur', handler)
return () => {
navigation.removeListener('focus', handler)
navigation.removeListener('blur', handler)
}
},[navigation])
这里的官方示例https://reactjs.org/docs/hooks-effect.html#effects-with-cleanup
推荐阅读
- html - Flex 元素不起作用。我怎样才能修复我的代码来解决这个问题?
- neo4j - neo4j 图算法中的定性搜索
- javascript - 如何加载预选类别选项的页面
- java - 有没有办法用java复制/复制excel文件?
- ios - Swift - 检索数据后显示 UICollectionView
- python - 从字典的键和值中删除字符?
- neo4j - 在 Neo4j 中为每个组生成 UUID
- github-pages - GitHub Pages:无法访问此站点
- python - 实时 subprocess.popen 输出(尝试了我能找到的一切)
- codeigniter-3 - 在我的 codeigniter 项目中用户登录期间出现错误