我是React的新手,我知道我的代码做错了什么。我只是想显示我可以删除的项目列表,感谢您的任何帮助。
import React from 'react';
class ApprovalList extends React.Component{
constructor(){
super();
this.state={
data:[
{name:'order 1'},
{name:'order 2'},
{name:'order 3'}
]
}
this.delete=this.delete.bind(this);
}
delete(id){
this.setState({
data:this.state.data.filter(el => el != id )
});
}
render(){
return(
<Item data={this.state.data} delete={this.delete}/>
);
}
}
class Item extends React.Component{
delete(id){
this.props.delete(id);
}
render(){
return(
<div>
{this.props.data.name.map(el=><p onClick={this.delete.bind(this,el)}>{el}</p>)}
</div>
);
}
}
export default ApprovalList;
答案 0 :(得分:1)
name
组件内的data
上的Item
属性不可用。道具data
是一个您必须调用data.map()
而不是data.value.map()
的数组。这是Item
组件render
的功能:
class Item extends React.Component {
delete(id) {
this.props.delete(id);
}
render() {
return (
<div>
{this.props.data.map(el => (
<p key={el} onClick={() => this.delete(el)}>
{el.name}
</p>
))}
</div>
);
}
}