如何解决警告:列表中的每个孩子都应该有一个唯一的“关键”道具

时间:2019-05-16 00:52:34

标签: reactjs firebase redux

我正在使用React,Redux和Firebase创建一个简单的应用程序。 当我在浏览器中转到“通知”列表时,控制台中会显示一条警告消息

警告:列表中的每个孩子都应该有一个独特的“钥匙”道具。 检查“ ProjectList”的渲染方法。

“ ProjectList”是我应用程序中的组件之一。

如何删除/修复此警告消息?

enter image description here

"Index.js File"

enter image description here

enter image description here

[![在此处输入图片描述] [5]] [5]

2 个答案:

答案 0 :(得分:1)

您只需要按照说的做,然后添加一个//ViewController.swift class ViewController: UIViewController, UISearchBarDelegate { override func viewDidLoad() { super.viewDidLoad() setUpNavBar() } func setUpNavBar() { let searchBar = UISearchBar() searchBar.delegate = self searchBar.sizeToFit() searchBar.searchBarStyle = .minimal searchBar.placeholder = "Search by username" searchBar.tintColor = UIColor.lightGray searchBar.barTintColor = UIColor.lightGray navigationItem.titleView = searchBar searchBar.isTranslucent = true } func searchBarTextDidBeginEditing(_ searchBar: UISearchBar) { self.present(UINavigationController(rootViewController: SearchViewController()), animated: false, completion: nil) } } //SearchViewController.swift class SearchViewController: UIViewController { let searchBar = UISearchBar() override func viewDidLoad() { super.viewDidLoad() view.backgroundColor = .white setUpNavBar() } override func viewDidAppear(_ animated: Bool) { super.viewDidAppear(animated) searchBar.becomeFirstResponder() } func setUpNavBar() { searchBar.sizeToFit() searchBar.searchBarStyle = .minimal searchBar.placeholder = "Search by " searchBar.tintColor = UIColor.lightGray searchBar.barTintColor = UIColor.lightGray navigationItem.titleView = searchBar searchBar.isTranslucent = true } } 。似乎您已经为每个key添加了一个键,但是当您在数组上进行映射并返回组件列表时,该键必须位于最外面的元素上-在这种情况下,<ProjectSummary /> < / p>

您在ProjectSummary本身上不需要它。

答案 1 :(得分:0)

只需在最上方的元素中添加“关键字”属性,然后为其分配 index 值即可。在map()函数中将索引添加为参数。

{ props.posts.map((post, index) => <ProjectSummary key={index} name={post.name} />) }