You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.13 17:53:09