Я создаю новостную страницу, где вы сможете оставлять комментарии и отвечать на них. У меня вся логика сделана, но не знаю как сделать правильное отображение комментариев и ответов. У меня есть комментарии, отображаемые на странице ViewLayout с помощью FlatList, где я отображаю комментарии CommentCard, а внутри CommentCard я отображаю ответы, когда нажимаю кнопку «Просмотреть комментарии».
Вся проблема в том, что когда открывается список ответов, экран мигает (экран на секунду становится белым). Я пытался это исправить с помощью анимаций, Аккордеона, Складного, но выглядело всё супер ужасно (приложу пару примеров). Я не отрицаю, что, возможно, я это неправильно реализовал, но я просто не знаю, как это сделать правильно: логику отображения ответов перенести во ViewLayout или оставить в CommentCard? Помогите, пожалуйста, примером, как это лучше сделать?
Если получится, то хочу сделать без реанимации.
Вот `это мой код (я его немного сократил, но вся логика отображения комментариев осталась):
Я создаю новостную страницу, где вы сможете оставлять комментарии и отвечать на них. У меня вся логика сделана, но не знаю как сделать правильное отображение комментариев и ответов. У меня есть комментарии, отображаемые на странице ViewLayout с помощью FlatList, где я отображаю комментарии CommentCard, а внутри CommentCard я отображаю ответы, когда нажимаю кнопку «Просмотреть комментарии». Вся проблема в том, что когда открывается список ответов, экран мигает (экран на секунду становится белым). Я пытался это исправить с помощью анимаций, Аккордеона, Складного, но выглядело всё супер ужасно (приложу пару примеров). Я не отрицаю, что, возможно, я это неправильно реализовал, но я просто не знаю, как это сделать правильно: логику отображения ответов перенести во ViewLayout или оставить в CommentCard? Помогите, пожалуйста, примером, как это лучше сделать? Если получится, то хочу сделать без реанимации. Вот `это мой код (я его немного сократил, но вся логика отображения комментариев осталась): [code]const ViewLayout = () => { const route = useRoute(); const navigation = useNavigation(); const { newsId} = route.params; const {user} = useGlobalContext(); const { showAlert, alertData, showCustomAlert, hideCustomAlert } =useCustomAlert() const { newsData, comments, isLiked, isLoading, setIsLiked} = useNewsData(newsId,user.uid)
export default ViewLayout [/code] Карточка комментариев, где я создал логику для отображения ответов: [code]import { View, Text,Image, TouchableOpacity, TextInput, LayoutAnimation, UIManager, Platform, Animated, ActivityIndicator} from 'react-native' import React, { useState,useEffect,useRef } from 'react' import { icons, images } from '../../constants' import Icon from 'react-native-vector-icons/FontAwesome'; import CustomAlert from '../Custom Alerts/CustomAlert'; import * as Animatable from "react-native-animatable"; import Accordion from 'react-native-collapsible/Accordion';
if (Platform.OS === 'android') { UIManager.setLayoutAnimationEnabledExperimental && UIManager.setLayoutAnimationEnabledExperimental(true); }