OStack程序员社区-中国程序员成长平台

标题: ios - listView 不显示,除非我滚动它 [打印本页]

作者: 菜鸟教程小白    时间: 2022-12-13 01:29
标题: ios - listView 不显示,除非我滚动它

我的 React Native 应用程序有一个图形错误,它只出现在 iOS 上,不会出现在 Android 上。

当我更新我的应用程序的历史屏幕状态时(启动时,或者当我添加行程时,或者当我删除行程时),历史记录中我的行程项目列表消失(使用 React Native ListView 实现) .我需要触摸屏幕才能让它出现。之后,在屏幕之间导航期间,我没有问题(因为我没有重新呈现历史屏幕)。

我使用 redux + reactnavigation。 在启动时,我使用一个常见的 Action “LOAD_RIDES”,我在每个屏幕缩小器中重复使用它来更新它的状态。与 ADD_RIDE、REMOVE_RIDE Action 相同。

但我发现,如果我在启动时自动导航到历史记录(通过让我的导航 reducer 在启动时转到历史记录),并且屏幕更新发生在之后,而历史屏幕已经显示,我不'有这个错误(隐藏历史项目)。

知道如何解决这个问题吗?谢谢!

"react": "16.0.0-alpha.6",
"react-native": "0.44.0",
"react-navigation": "1.0.0-beta.9",
"react-redux": "^5.0.3",

UI bug: need to scroll on History to display listView


为了重现该错误,我创建了该存储库:https://github.com/jcharlet/react_native_listview_bug

project organisation

有趣的部分是创建 listView 的 HistoryScreen。 https://github.com/jcharlet/react_native_listview_bug/blob/master/src/screens/history/HistoryScreen.js

master 分支显示了正在运行的错误 unsatisfying_workaround 分支显示,如果我在更新其状态之前显示历史屏幕,它会正确显示列表。


到目前为止,我尝试失败了

在 Chrome 开发工具中,当我使用导航解决方案(在加载游乐设施之前导航到历史屏幕)之前/之后以及我不使用时,我查看了 redux 状态:没有任何变化。



Best Answer-推荐答案


react-native 上的错误 我提出的问题 https://github.com/facebook/react-native/issues/14069 , 复制到 https://github.com/facebook/react-native/issues/1831

引用回答它的人的话:

can be worked around by adding removeClippedSubviews={false} to the ListView. It might cause some performance issues depending on large your list is https://facebook.github.io/react-native/docs/listview.html#removeclippedsubviews but that's what we have been using.

(根据 William 对属性拼写的评论进行编辑)

关于ios - listView 不显示,除非我滚动它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44022857/






欢迎光临 OStack程序员社区-中国程序员成长平台 (https://ostack.cn/) Powered by Discuz! X3.4