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

遇到具有相同键[object object]`的两个子项。键应该是唯一的,以便组件在更新时维护它们的标识

闻人修明
2023-03-14

>

  • 因为我刚使用React原生,有人能理解我这里的问题吗。如果是这样,请给出一个解决方案

    从“React”导入React;从“react-native”导入{StyleSheet,TouchableOpacity,ScrollView};从“本机基”导入{ListItem,Badge,Text};

    return(
        <ScrollView
            bounces={true}
            horizontal={true}
            style={{ backgroundColor: "#f2f2f2" }}
        >
            <ListItem style={{ margin: 0, padding: 0, borderRadius: 0 }}>
                <TouchableOpacity
                    // Here the key is different
                    key={1}
                    onPress={() => {
                        props.categoryFilter('all'), props.setActive(-1)
                    }}
                >
                    <Badge
                        style={[styles.center, {margin: 5},
                            props.active == -1 ? styles.active : styles.inactive
                        ]}
                    >
                        <Text style={{ color: 'white' }}>All</Text>
                    </Badge>
                </TouchableOpacity>
                {props.categories.map((item) => (
                      <TouchableOpacity
              // Here the key is also different
                      key={item._id}
                      onPress={() => {
                          props.categoryFilter(item._id.$oid), 
                          props.setActive(props.categories.indexOf(item))
                      }}
                  >
                      <Badge
                          style={[styles.center, 
                            {margin: 5},
                            props.active == props.categories.indexOf(item) ? styles.active : styles.inactive
                          ]}
                      >
                          <Text style={{ color: 'white' }}>{item.name}</Text>
                      </Badge>
                  </TouchableOpacity>
                ))}
            </ListItem>
        </ScrollView>
    )
    

    导出默认CategoryFilter;

    我想我有的问题是在toucAbleOpacity但两个组件中的键是不同的,但它仍然给出了警告

  • 共有1个答案

    狄宪
    2023-03-14

    您必须将键设置为映射中的特定值,而不是包含2个对象的数组。Item._id似乎是一个包含2个对象的数组。所以做一个项目。也许是名字?

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

    • 我使用React来呈现数据列表,但是数据中的每一项都没有被分配id或uuid或类似于标识属性的东西。我可以使用项目索引作为关键吗?喜欢: 我所关心的是,如果页面上的其他列表也使用order索引作为子组件键,这有关系吗?钥匙应该是唯一的标识吗?

    • 所以我想渲染数组,但它一直在说,警告:列表中的每个孩子都应该有一个唯一的“键”道具,即使它有唯一的键,我的数组包含三个元素,它甚至没有正确渲染第三个数组,按钮没有甚至因为某种原因第三李的工作。 更新:我从firebase获得的数据如下所示: 此代码将选择每个数据的标题 当我将鼠标悬停在“fikka-fikka”上时,“fikka-fikka”的按钮甚至不起作用。在ed sheeran和一个方向上,

    • 我有一个问题,“列表中的每个孩子都应该在我的应用程序中有一个唯一的“键”道具”错误。我可以打印表格,但我不知道为什么它给我这个错误,因为我提供了一个唯一的ID列表中的每个项目。 我也尝试过向我的表头添加一个键属性,但这并不能修复错误。 如有任何意见,将不胜感激 客户组件 表组件

    • 得到一个警告:列表中的每个孩子都应该有一个唯一的“键”道具。我想不出我需要用哪把钥匙。 我红了反应指南,但它不能帮助我理解如何在我的情况下使用它

    • 我试图显示一个从服务器获取数据并显示其中所有信息的表。代码正在从获取的API打印我的表标题和第一个对象的信息。 这给了我一个错误。 警告:数组或迭代器中的每个子级都应具有唯一的“键”属性。检查的渲染方法