You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
56 lines
1.1 KiB
56 lines
1.1 KiB
import React from 'react'
|
|
|
|
function ListItem({ item, delItem }) {
|
|
return (
|
|
<>
|
|
<h3>{item.name}</h3>
|
|
<p>{item.price}</p>
|
|
<p>{item.info}</p>
|
|
<button onClick={() => delItem(item.id)}>删除</button>
|
|
</>
|
|
)
|
|
}
|
|
|
|
class App extends React.Component {
|
|
state = {
|
|
list: [
|
|
{
|
|
id: 1,
|
|
name: '超级好吃的棒棒糖',
|
|
price: 18.8,
|
|
info: '开业大酬宾,全场8折',
|
|
},
|
|
{
|
|
id: 2,
|
|
name: '超级好吃的大鸡腿',
|
|
price: 34.2,
|
|
info: '开业大酬宾,全场8折',
|
|
},
|
|
{
|
|
id: 3,
|
|
name: '超级无敌的冰激凌',
|
|
price: 14.2,
|
|
info: '开业大酬宾,全场8折',
|
|
},
|
|
],
|
|
}
|
|
|
|
// 给子组件传递的函数
|
|
delItem = (id) => {
|
|
this.setState({
|
|
list: this.state.list.filter((item) => item.id !== id),
|
|
})
|
|
}
|
|
|
|
render() {
|
|
return (
|
|
<div>
|
|
{this.state.list.map((item) => (
|
|
<ListItem key={item.id} item={item} delItem={this.delItem} />
|
|
))}
|
|
</div>
|
|
)
|
|
}
|
|
}
|
|
|
|
export default App
|