尝试删除子视图错误以上的视图索引

这是什么意思? 当我更新类似的迭代视图列表时会发生这种情况

<View style={{ flexDirection: 'row', padding: 20, backgroundColor: '#fff' }}>
  <Ionicons name={jobIcon} color={theme.iconColor} size={30} />
  <Text>{jobService}</Text>
  <Text>{jobDate}</Text>
</View>

映射在滚动视图内。

当我从子场景修改数组时,会弹出此错误。 scene1 - 是带有作业列表视图数组sence2的ScrollView - 是我删除作业的位置,当我删除作业时应该更新scene1

在这里输入图像描述


在我的情况下,我为我的ScrollView使用了LayoutAnimation。 里面有一个项目的地图。 当一个项目从列表中删除时,会发生这种情况。 不使用LayoutAnimation似乎工作正常。


发生这种情况时,组件只有x个孩子,但您试图删除索引大于x的孩子。 就像数组常见的索引越界异常一样。 可能会导致很多挫折感,因为您经常想要移除孩子的时间会影响到您的孩子。 但可能会发生这种情况,因为您正在使用仅预计会有一定数量的孩子的第三方组件。

对我而言,当我将一个额外的孩子放入air-bnb MapView时发生了这种情况。 我通过把这个元素作为祖父母的孩子来解决这个问题(它是绝对定位的,所以它不会影响样式)。


当您在布局动画处理过程中调用布局动画时就会发生这种情况。 iOS会显示警告,而Android会因此错误而爆炸。 当你使用相同组件的LayoutAnimation时,你可以使用这个简单的模式来修复它。

layoutAnimation()  {
  if (!this.layoutAnimationActive) {
    this.layoutAnimationActive = true;
    LayoutAnimation.configureNext(LayoutAnimation.Presets.easeInOut, () => { this.layoutAnimationActive = false; });
  }
}
链接地址: http://www.djcxy.com/p/94745.html

上一篇: Trying to remove a view index above child count error

下一篇: Lightbox image viewer positioning in CCS