React native在View
上展示了像testID这样的某些道具,这些道具对于本机测试超级有用,但是附有以下说明
这为此禁用了“仅布局视图删除”优化 查看!
搜索了一会儿之后,我无法找到描述此优化是什么的信息。重要吗?如果仅在开发模式/开发目标中设置这些测试ID是可行的?也就是说,否则它们将是不确定的?
答案 0 :(得分:4)
当RN从影子节点树创建本机视图时,它将执行一些优化。构造本机层次结构时,可以删除实际上不显示在屏幕上的视图(不绘制任何内容或仅在JSX中用于包含和布局其子视图)。这就是为什么它们被称为“仅布局”视图的原因。
正如该警告所暗示的那样,即使是“仅布局”视图,带有testID
道具的视图也不会被删除,因此在执行e2e测试时它实际上会存在。
通常来说,渲染很多视图可能会导致性能问题,但是在某些视图上使用testID
不会在性能上产生明显差异,因为:
testID
的看法不多testID
的视图可能不是“仅布局”视图,因此,无论您是否使用此道具,都不会影响优化。如果您确实拥有带有testID
的“仅布局”视图,则将testID
移到更合适的视图会更容易。