goToDetail(){
console.log("看看能出来吗?")
}
renderComment({name, author,uploadTime,description,category,sraID}) {
switch (category){
case "0":return "other";
case "1":return "project";
case "2":return "paper";
case "3":return "book";
case "4":return "certificate";
case "5":return "patent";
case "6":return "picture";
}
return (
<li className="listLi">
<h3 className="listTitle" onClick={this.goToDetail.bind(this)}><a>{name}</a></h3>
<p>
<span>{author}</span>
<span> - </span>
<span>{uploadTime}</span>
</p>
<p><span>描 述:</span>{description}</p>
</li>
);
}
render(){
if(this.state.contents){
return(<div className="main_div">
<LitNav />
<ul className="lists">{this.state.contents.map(this.renderComment)}</ul>
</div>)
}else{
return(<div className="main_div">
<LitNav />
</div>)
}
}
不知道什么原因,求大神解答。。。
goToDetail函数是undefined,修改如下代码即可:
以上代码应该还有一个错误:Warning: Each child in an array or iterator should have a unique "key" prop
原因是在react遍历时,需要在子元素上加上unique key。这个是和react的dom-diff算法相关的。react对dom做遍历的时候,会根据data-reactid生成虚拟dom树。如果你没有手动的添加unique key的话,react是无法记录你的dom操作的。它只会在重新渲染的时候,继续使用相应dom数组的序数号(就是array[index]这种)来比对dom树。
推荐您看一下如何正确地在React中处理事件:
官网英文文档:https://reactjs.org/docs/hand...
中文文档:如何正确地在React中处理事件 (滚动到“如何正确地在React中处理事件”或者搜索“如何正确地在React中处理事件”
)
希望对您有所帮助!