【问题标题】:Flatlist maintainVisibleContentPosition causes instant crash on iOsFlatlist maintainVisibleContentPosition 导致 iO 立即崩溃
【发布时间】:2020-12-04 06:45:43
【问题描述】:

我有一个只有这个组件的应用:

function TestComp() {
    return (
        <FlatList
            keyExtractor={(item) => String(item)}
            data={[0, 1, 2, 3]}
            renderItem={({ item }) => (
                <View>
                    <Text>{item}</Text>
                </View>
            )}
            maintainVisibleContentPosition     <--- Causes crash
        />
    );
}

程序立即崩溃,抛出错误: Exception thrown while executing UI block: - [__NSCFBoolean objectForKeyedSubscript:]: unrecognized selector sent to instance 0x11bfcae48.

当我删除 maintainVisibleContentPosition 道具时,崩溃消失了(但我需要它)。

我在react 16.11.0,使用expo sdk 38.0.0

知道为什么会这样吗?

【问题讨论】:

  • 我遇到了同样的问题。看起来你签了一张票? github.com/expo/expo/issues/9757。我也无法理解为什么。您是否处于托管模式?
  • 是的,我处于托管模式。这个问题也在生产中发生,所以我不确定它是由于世博会造成的。

标签: react-native expo react-native-flatlist


【解决方案1】:

这是因为 React 期望你定义最小可见位置,即使它是零。因此,不要仅仅放置maintainVisibleContentPosition,而是尝试使用

maintainVisibleContentPosition={{
     minIndexForVisible: 0,
  }}

【讨论】:

  • 确实,不知何故我错过了这些信息。它确实阻止了崩溃,但不幸的是,它并没有为我维护内容位置。列表仍然跳转的内容被添加到列表的顶部(如果倒置,则添加到底部):(
  • 第一次添加数据(跳转)时似乎不起作用,但可以处理后续数据(保持可见内容)。
【解决方案2】:

maintainVisibleContentPosition这里是官方文档

应用程序崩溃了,因为maintainVisibleContentPosition 正在观察一个对象

试试这个

maintainVisibleContentPosition={{
     minIndexForVisible: 0,
  }}

这里是演示:https://snack.expo.io/@nomi9995/flastlist-fix-crash

import * as React from 'react';
import { FlatList, Text, View } from 'react-native';

export default function App() {
  return (
        <FlatList
            keyExtractor={(item) => String(item)}
            data={[0, 1, 2, 3]}
            renderItem={({ item }) => (
                <View>
                    <Text>{item}</Text>
                </View>
            )}
            maintainVisibleContentPosition={{
              minIndexForVisible: 0,
            }}
        />
    );
}

【讨论】:

猜你喜欢
  • 2012-01-19
  • 2018-04-08
  • 1970-01-01
  • 1970-01-01
  • 2015-12-19
  • 1970-01-01
  • 1970-01-01
  • 2021-10-20
  • 1970-01-01
相关资源
最近更新 更多