React Native新架构下画中画(PIP)模式状态更新不生效问题求助
React Native新架构下画中画(PIP)模式状态更新不生效问题求助
各位React Native的大佬们,我最近碰到个挺头疼的问题,想请教下大家有没有解决方案:
自从升级到React Native 0.76版本后,我发现当应用进入画中画(PIP)模式时,组件的状态更新完全没办法在PIP窗口里反映出来。我猜测这个问题和RN 0.76默认启用的新架构(Fabric)脱不了干系——毕竟用旧架构的时候从来没出现过这种情况。
为了方便复现问题,我用react-native-background-timer库写了个极简的计数器示例,核心代码如下:
import BackgroundTimer from 'react-native-background-timer'; import React, { useState, useEffect } from 'react'; import { View, Text, StyleSheet } from 'react-native'; const PIPCounter = () => { const [count, setCount] = useState(0); useEffect(() => { const timer = BackgroundTimer.setInterval(() => { setCount(prev => prev + 1); console.log('Count updated:', count); // 控制台能看到数值在变,但PIP窗口不更新 }, 1000); return () => BackgroundTimer.clearInterval(timer); }, []); return ( <View style={styles.container}> <Text style={styles.counterText}>当前计数:{count}</Text> </View> ); }; const styles = StyleSheet.create({ container: { flex: 1, justifyContent: 'center', alignItems: 'center', backgroundColor: '#fff', }, counterText: { fontSize: 24, fontWeight: 'bold', }, }); export default PIPCounter;
实际测试下来,非PIP模式下计数器显示完全正常,数值每秒都会更新;但一旦切换到PIP模式,控制台还能正常打印出更新后的count值,可PIP窗口里的数字就停在进入PIP时的数值不动了。我试着临时禁用新架构(把newArchEnabled设为false),结果PIP模式下状态更新又恢复正常了,这就坐实了问题和Fabric新架构有关。
有没有大佬遇到过类似的情况?或者知道在新架构下,PIP模式里的状态更新需要做什么特殊处理吗?麻烦指点一下,万分感谢!
备注:内容来源于stack exchange,提问作者Honey Yadav
相关产品推荐
相关产品推荐

