首页 > 技术文章 > React中中间组件如何传递props属性

bobo1 2020-05-13 15:09 原文

在react中自定义的组件中如果我们想绑上点击click事件时,加上onClick={}并不会起作用。

因为我们自定义的组件,并不是一个真实的DOM元素,它不存在点击事件,因为它不是最终渲染的页面的元素。

这时候我们需要在最底层真实的DOM元素上绑定,如下

<div onClick={this.props.onClick}/>

  如果我们只封装一层这样绑定还好,如果是多层而且多个属性,那每一层都要写大量代码,这时候就可以用{...this.props}

案例 Father——>Middle——>Child

class Child extends React.Component{
    render(){
        return(
            <ul>
                <li>{this.props.name}</li>
                <li>{this.props.age}</li>
                <li>{this.props.sex}</li>
            </ul>
        )
    }
}
class Middle extends React.Component{
    render(){
        return(
            <Child name={this.props.name}
                age={this.props.age}
                sex={this.props.sex}/>
        )
    }
}
// {...this.props}扩展赋值,一一对应
class Father extends React.Component{
    render(){
        return(
            <Middle
            {...this.props}
            />
        )
    }
}

  最后调用Father组件时

<Father name="Jack" age="18" sex="boy"/>

  

推荐阅读