Медленная анимация в приложении ReactNative для android


Я использую redux с react-native и на одной странице я использовал FlatList и некоторые анимации, использующие Animated.new(). Также в его приложении я использую реагировать-навигации, но интерфейс приложения состоит в анимации очень медленно. Одна из причин заключается в том, что список исчисляется сотнями. Я попытался повысить производительность FlatList с помощью getItemLayout, но все равно приложение ведет себя очень медленно, хотя тот же код работает намного эффективнее на ios.

Я прошел через следующее URL-АДРЕС: https://facebook.github.io/react-native/docs/performance.html

Может ли кто-нибудь указать мне, как я могу улучшить производительность здесь?

Отредактировано:

Производительность улучшается после добавления getItemLayout и onEndReachedThreshold, но все равно значок ящика не отвечает несколько раз.

<FlatList
                    refreshControl={
                        <RefreshControl
                            refreshing={this.props.gameList.get('isFetching')}
                            onRefresh={()=>{
                                this.props.getGameList()
                            }}/>}
                    getItemLayout={this.getItemLayout}
                    contentContainerStyle={styles.gameListContent}
                    data={gameListData}
                    keyExtractor={this.keyExtractor}
                    renderItem={props=>this.renderItem({...props, isFirst: props.index === 0, isLast: props.index === gameListData.length-1})}
                    ItemSeparatorComponent={this.renderSeparator}
                    initialNumToRender={25}
                    onEndReachedThreshold={0.5}
                />
2 2

2 ответа:

Создание PureComponent для каждого элемента списка помогло мне улучшить производительность списка. Однако некоторые люди предлагали использовать ListView вместо FlatList, но я этого не делал. Для получения более подробной информации перейдите по следующему адресу:

Https://github.com/facebook/react-native/issues/13649

Чтобы улучшить производительность FlatLsit, на визуализацию передавать данные, нарезка от 10 до 15, и на вверх события проходят все данные, потому что он загружает дополнительные данные, как мы указываем в setInitilaItemToRender, потому что это вызывает onEndReached событие несколько раз.