首页 > 解决方案 > React Native 查找并禁用特定类型屏幕上的所有组件

问题描述

我在想这样做的方法是搜索某种类型的所有组件(TouchableOpacity、Button 等)并向它们添加禁用的道具。像 document.getElementsByName() 这样的东西。

使用 RN >0.60 和功能组件。

我不想禁用整个屏幕,因为我仍然希望用户能够滚动列表等。

我希望能够从一个子组件中执行此操作,我将添加到许多不同的屏幕中,因此通过并将引用添加到数百个我可能想要禁用的组件或类似的东西我认为不起作用。

为了减少歧义,如果没有互联网连接,我正在尝试禁用用户对屏幕上发送 api 请求的任何内容的输入。

标签: reactjsreact-native

解决方案


你可以使用状态或钩子来解决这个问题:

  1. 分配一个状态来检测互联网连接:

    如果有互联网连接 -> 连接 = true;

    如果没有连接 -> coonection = false;

  2. 在你的 style prop 组件中检测状态:

    样式={this.state.connection?{display:none;}:{display:block}}

我希望这能帮到您


推荐阅读