Функция React-native-pager-view setPage() не работает в 100% случаев на iOSIOS

Программируем под IOS
Ответить Пред. темаСлед. тема
Anonymous
 Функция React-native-pager-view setPage() не работает в 100% случаев на iOS

Сообщение Anonymous »

У меня есть нижняя страница, содержащая PagerView с 4 страницами. У меня есть кнопки «Далее» и «Предыдущий» внизу страницы, которые вызывают функции goToNextPage и goToPreviousPage. По какой-то причине на iOS это работает только иногда. В других случаях он зависает на одной из страниц. Я добавил журналы консоли, и правильный индекс экрана всегда печатается. Кажется, просто неправильно настроена страница. Кажется, мне не нужно делать ничего другого, чтобы воспроизвести это, это просто происходит случайно. (react-native-pager-view: "6.2.3")
Вот функции изменения страницы:

Код: Выделить всё

    const pagerRef = useRef(null);
const [ currentPage, setCurrentPage ] = useState(0)

Код: Выделить всё

      const goToNextPage = () => {
//console.log("Pager ref: ", pagerRef.current)
const currentPageIndex = currentPage;
const nextPageIndex = currentPageIndex + 1
if (currentPageIndex < 3) {
console.log("Current page index: ", currentPageIndex)
console.log("Going to page index: ", nextPageIndex)
setCurrentPage(nextPageIndex);

}
pagerRef.current?.setPage(nextPageIndex);

};

const goToPreviousPage = () => {
const currentPageIndex = currentPage;
const previousPageIndex = currentPageIndex - 1;
if (currentPageIndex > 0) {
console.log("Current page index: ", currentPageIndex)
console.log("Going to page index: ", previousPageIndex)
setCurrentPage(previousPageIndex);
}
pagerRef.current?.setPage(previousPageIndex);
};
А вот сам вид пейджера. ScrollEnabled также перестает работать, когда страницы зависают. Я попробовал установить значение false, но это не помогло.

Код: Выделить всё

         
            style={styles.pager}
ref={pagerRef}
initialPage={0}
scrollEnabled={true}
>

Page 1


Page 2


Page 3


Page 4


Я также попробовал обновить pagerRef с помощью простого useEffect, который только замедлил изменение страницы, хотя проблема все еще сохранялась:

Код: Выделить всё

    useEffect(() => {pagerRef.current?.setPage(currentPage)}, [currentPage])
Спасибо!
-обновление. Не уверен, что это вообще поможет. Но перестает работать не сама прокрутка. У меня на страницах было несколько компонентов, и они тоже перестали отвечать на запросы. Кажется, что весь компонент PagerView просто перестает отвечать на запросы. Эта проблема все еще возникала, когда я удалил эти пользовательские компоненты и использовал компоненты View, как показано выше.

Подробнее здесь: https://stackoverflow.com/questions/784 ... ime-on-ios
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «IOS»