当前位置: 首页 > 知识库问答 >
问题:

在多个组件中触发相同的功能

乐正玺
2023-03-14

我正在使用react-nate-corport-菜单的弹出窗口来显示菜单选项。

但问题是,它不适用于多种场景。

我的意思是,当我点击第一个菜单按钮时,同样的方法会被触发,因此每次都会打开同样的菜单。

处理此特定场景的更好方法应该是什么。

这是小吃

_menu = null;

 setMenuRef = ref => {
     this._menu = ref;
 };

 hideMenu = () => {
     this._menu.hide();
 };

 showMenu = () => {
     this._menu.show();
 };


{this.state.clientsList.map((item) => {
                    return (
                        <View style={styles.caseItem} >
                            <Card style={styles.card}>
                                <CardItem>
                                    <Body>
                                        <View style={styles.rowTitle}>
                                            <Text style={styles.title}>{item.FullName}</Text>
                                            <Menu
                                                ref={this.setMenuRef}
                                                button={<Icon type="Feather" name="more-vertical" onPress={this.showMenu} style={{ fontSize: 20, color: '#555' }} />}
                                            >
                                                <MenuItem onPress={this.hideMenu}>View</MenuItem>
                                                <MenuItem onPress={this.hideMenu}>Edit</MenuItem>
                                                <MenuItem onPress={this.hideMenu}>Delete </MenuItem>
                                            </Menu>
                                        </View>

                                        <View>
                                            <Text style={styles.lbl}>Email: <Text style={styles.lblValue}>{item.EmailID}</Text></Text>
                                            <Text style={styles.lbl}>Client Type: <Text style={styles.lblValue}>{item.ClientType}</Text></Text>
                                        </View>
                                    </Body>
                                </CardItem>
                            </Card>
                        </View>
                    );
                })}

共有2个答案

司空温书
2023-03-14

每次都调用相同的ref。我没有使用你提到的库,但是如果它必须依赖于ref,你可以创建一个引用列表,语法在这篇文章中。

曹高阳
2023-03-14

所有菜单组件都使用相同的参考

您必须为每个菜单使用不同的参考。

  1. 最佳方法:

创建HOC for菜单并在其中处理它们的第一种方法。

或在React中为菜单列表创建动态参考

第三是为每个菜单创建ref

_menu1 = null;
_menu2 = null; 
_menu3 = null;
 类似资料:
  • 我有一个 Blob 存储容器,其中配置了事件网格触发器(Blob 已创建)。我正在通过数据工厂加载此 blob 存储文件,很多时候,许多文件可能会在一次尝试中出现在此 blob 中。也许我们可以举一个20个文件的例子。 好消息是我的事件网格触发器启动了,函数app被调用。然而,我发现有时对于同一个文件,事件网格触发器被触发了不止一次。 在这20个文件中,很少有文件非常大,比如300 MB,但其他文

  • 我已经在Terraform中设置了以下内容。所以有两条事件规则,上午8点开始\u事件,下午6点停止\u事件。 每个事件都将一个操作传递给lambda 这很有效 我面临的问题是,我无法让Terraform将start\u事件与lambda函数相关联。我进入AWS控制台,可以手动将CloudWatch start\u事件触发器添加到lambda函数中。 如果我有start_event资源 它会抱怨语句

  • 我想从多个SQS队列中触发一个lambda函数。lambda将进行的大部分处理都是相同的,只是一个小步骤将基于表名。我不想为此保留两个单独的lambda。拥有相同/多个lambda的利弊是什么?

  • 基本上我有一个数组如下所示: 用什么方法来计算重复次数最多的动作以及它重复了多少次?关键字“when”无关紧要。

  • 这是im使用的代码的一个示例,当前它将输出 有没有一种方法可以通过多种方式“触发”一个案例?例如 我试过这个^^^,但是只有最后一件事可以触发它,所以在上面的情况下xxx和aaa不会触发,但是bbb会

  • 我想创建一个包含所有价格选项的列表,并将唯一的值放在下拉列表中,所以我这样做: 此代码引发错误: 警告:遇到具有相同键的两个子项。键应该是唯一的,以便组件在更新时维护它们的标识。非唯一键可能导致重复和/或省略子键-此行为不受支持,并且可能在未来版本中更改。 从到 更新我也添加到它呈现的地方。 和SearchHandlerPrice: