父组件:
父传子:父:<Child name={...对象}/>
子:this.props.name
render() { //解构
let { data } = this.state; return ( <ul> { data.map((item, index) => { return <List key={index} {...item} change={index => this.change(index)} />
}) } </ul>
) } change(id) { //子传父
let newarr = this.state.data; newarr.filter(item => { if (item.id == id) { item.flag = !item.flag } }) //刷新数据
this.setState({ data:newarr }) }
子组件:
子传父:父:<Child onHandleChild="函数"/> 父组件=>函数(参数){ }
子:this.props.onHandleChild(传值) //在子组件中执行这个函数,会传值到父组件
render() { return ( <li>
<img src={this.props.img} alt="" />
<span className="name">{this.props.name}</span>
<button onClick={() => { this.props.change(this.props.id) }} className={this.props.flag ? "grey" : "green"}>
{this.props.flag ? "已添加" : "添加"}</button>
</li>
) }