我正在使用React,Redux和Firebase创建一个简单的应用程序。 当我在浏览器中转到“通知”列表时,控制台中会显示一条警告消息
警告:列表中的每个孩子都应该有一个独特的“钥匙”道具。 检查“ ProjectList”的渲染方法。
“ ProjectList”是我应用程序中的组件之一。
如何删除/修复此警告消息?
[![在此处输入图片描述] [5]] [5]
答案 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} />) }