将键添加到项目列表中断,但仅在更新时

约翰·欣尼根

我有一个我在渲染方法中渲染的项目列表(方便,实际上命名为 Item)。

    render() {
        return (
            <div>
                {
                    this.state.items.map(item => (
                        <Item
                            id={item.id}
                            myValue={item.myValue}
                            updateItem={this.handleUpdateItem}
                            deleteItem={this.handleDeleteItem}
                        />
                    ))
                }
            </div>
        )
    }

这有效,但我收到警告Each child in a list should have a unique "key" prop. 但是,添加 key 道具会导致错误。

  render() {
        return (
            <div>
                {
                    this.state.items.map(item => (
                        <Item
                            id={item.id}
                            key={item.id}
                            myValue={item.myValue}
                            updateItem={this.handleUpdateItem}
                            deleteItem={this.handleDeleteItem}
                        />
                    ))
                }
            </div>
        )
    }

错误:

Uncaught Invariant Violation: Objects are not valid as a React child (found: object with keys {myValue}). If you meant to render a collection of children, use an array instead.

此错误仅在更新时发生,当我更改项目的 myValue 时。初始页面加载得很好。

有人可以帮助我了解这里发生了什么吗?

乔诺

所以当我运行你的代码时,完整的错误文本是:

Objects are not valid as a React child (found: object with keys {myValue}). If you meant to render a collection of children, use an array instead.
in div (created by Item)
in div (created by Item)
in Item (created by ItemList)
in div (created by ItemList)
in ItemList (created by App)
in div (created by App)
in App

使用堆栈跟踪,我们可以看到这是在Item组件内引起的更进一步,这是在两个divs内结束的代码

let display =
  <div>
    {this.state.displayValue}
    <button onClick={this.handleEdit}>Edit</button>
    <button onClick={this.handleDelete}>Delete</button>
  </div>

的渲染this.state.displayValue导致错误。使用console.log,它显示更新后,displayValue设置为一个对象。

我会让你追问为什么会这样:)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在创建对象时将项目添加到列表

来自分类Dev

将多个项目添加到列表

来自分类Dev

将项目添加到列表时出现AccessViolationException

来自分类Dev

使用Sharepoint CSOM将项目添加到列表时,如何正确执行ID的子查询?

来自分类Dev

将Firebase添加到应用程序依赖项列表时,应用程序中断

来自分类Dev

在Javascript中按下按钮时将项目添加到列表

来自分类Dev

将某些内容添加到列表时更新ViewModel

来自分类Dev

将项目添加到列表的开头

来自分类Dev

将项目添加到列表视图时如何禁用动画

来自分类Dev

在遍历列表时将项目添加到列表是否安全?

来自分类Dev

如何在不中断编号的情况下将代码添加到数字列表的项目中?

来自分类Dev

Java | 将项目添加到列表<?>

来自分类Dev

jQuery:将项目添加到列表并保持项目计数

来自分类Dev

尝试将项目添加到单链列表的末尾时发生NullReferenceException

来自分类Dev

删除时保持在列表中的位置,然后将项目再次添加到列表中

来自分类Dev

Flutter将项目添加到列表

来自分类Dev

将项目组添加到列表

来自分类Dev

将项目添加到数组时视图不会更新

来自分类Dev

如何在单击按钮时将项目添加到列表视图?

来自分类Dev

将项目添加到列表时出现AccessViolationException

来自分类Dev

将Firebase添加到应用程序依赖项列表时,应用程序中断

来自分类Dev

在Javascript中按下按钮时,将项目添加到列表中

来自分类Dev

在通过while循环将项目添加到列表框时,程序失败

来自分类Dev

在遍历列表时将项目添加到列表是否安全?

来自分类Dev

将项目添加到列表 SML

来自分类Dev

recyclerview 在将新项目添加到列表时刷新

来自分类Dev

将项目添加到列表

来自分类Dev

Python - 将项目添加到列表列表

来自分类Dev

将空项目添加到列表

Related 相关文章

  1. 1

    在创建对象时将项目添加到列表

  2. 2

    将多个项目添加到列表

  3. 3

    将项目添加到列表时出现AccessViolationException

  4. 4

    使用Sharepoint CSOM将项目添加到列表时,如何正确执行ID的子查询?

  5. 5

    将Firebase添加到应用程序依赖项列表时,应用程序中断

  6. 6

    在Javascript中按下按钮时将项目添加到列表

  7. 7

    将某些内容添加到列表时更新ViewModel

  8. 8

    将项目添加到列表的开头

  9. 9

    将项目添加到列表视图时如何禁用动画

  10. 10

    在遍历列表时将项目添加到列表是否安全?

  11. 11

    如何在不中断编号的情况下将代码添加到数字列表的项目中?

  12. 12

    Java | 将项目添加到列表<?>

  13. 13

    jQuery:将项目添加到列表并保持项目计数

  14. 14

    尝试将项目添加到单链列表的末尾时发生NullReferenceException

  15. 15

    删除时保持在列表中的位置,然后将项目再次添加到列表中

  16. 16

    Flutter将项目添加到列表

  17. 17

    将项目组添加到列表

  18. 18

    将项目添加到数组时视图不会更新

  19. 19

    如何在单击按钮时将项目添加到列表视图?

  20. 20

    将项目添加到列表时出现AccessViolationException

  21. 21

    将Firebase添加到应用程序依赖项列表时,应用程序中断

  22. 22

    在Javascript中按下按钮时,将项目添加到列表中

  23. 23

    在通过while循环将项目添加到列表框时,程序失败

  24. 24

    在遍历列表时将项目添加到列表是否安全?

  25. 25

    将项目添加到列表 SML

  26. 26

    recyclerview 在将新项目添加到列表时刷新

  27. 27

    将项目添加到列表

  28. 28

    Python - 将项目添加到列表列表

  29. 29

    将空项目添加到列表

热门标签

归档