import React, { useState, useEffect } from 'react';
import { View, Text, StyleSheet } from 'react-native';
const App = () => {
const [count, setCount] = useState(0);
useEffect(() => {
const intervalId = BackgroundTimer.setInterval(() => {
setCount(prevCount => prevCount + 1);
}, 1000);
return () => BackgroundTimer.clearInterval(intervalId);
}, []);
return (
{count}
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
},
counter: {
fontSize: 48,
fontWeight: 'bold',
},
});
export default App;
< /code>
Этот пример работает совершенно хорошо в React Native 0,75 и ниже. Однако в версии 0.76 и выше (с включенной новой архитектурой) состояние не обновляется после того, как приложение переходит в режим PIP. < /P>
Код выше-это просто упрощенный пример, чтобы воспроизвести проблему. /> Я обновляю состояние (например, изменение размера видеоплеера) при переходе на режим PIP, что приводит к искаженному пользовательскому интерфейсу. < /li>
Отключение новой архитектуры не является вариантом для меня. Видео
React Native 0.76 Video < /p>
Существуют ли рекомендуемые обходные пути или исправления, чтобы гарантировать, что обновления состояния продолжают работать в режиме PIP с новой архитектурой? Спасибо! < /P>
Я создал минимальный воспроизводимый пример, используя реакцию-родственные земли-timer для имитации непрерывных обновлений состояния (простой счетчик, который увеличивает каждую секунду). Это должно было убедиться, что обновления состояния работают правильно в режиме PIP в различных нативных версиях React. < /P>
Что я ожидал: < /p>
Счетчик должен сохранять увеличение даже после того, как приложение входит в режим изображения в картине, точно так же, как это происходит в версиях до 0.76. />
В RACE Native 0,75 и ниже все работало, как и ожидалось - счетчик продолжал обновляться в режиме PIP. < /li>
В React Native 0,76 и выше (с новой архитектурой включена), счетчик останавливает обновление, как только приложение входит в режим PIP. введено в 0,76, возможно, из -за того, как обновления реагирования обрабатываются, когда приложение входит в фоновое состояние PIP.
Подробнее здесь: https://stackoverflow.com/questions/795 ... chitecture
Мобильная версия