公共组件抽离(render props)

公共组件的实时鼠标位置 传递给子组件

结构  公共组件的render方法 把挂载props上的方法返回要渲染的容器

声明 CommonComponent中的render方法

render(){

return (<div style={{height:200}} onMouseMove={this.handlerMouseMove}> {this.props.fn(this.state)}</div>)

使用  <CommonComponent fn={ ({x,y})=><div> {x} {y}</div>}/>

import React from "react"

class CommonComponent extends React.Component{

constructor(props){ super(props);this.state={x:0,y:0} }

handlerMouseMove=(e)=>{this.setState({x:e.clientX,y:e.clientY})}

render(){return(<div style={{height:200}} onMouseMove={this.handlerMouseMove}>{this.props.fn(this.state)}</div>}

}

const ChildrenComponent=(props)=>{

return <CommonComponent fn={(x,y)=><div style={{height:200}}>{x},{y}</div>}

}

export default  ChildrenComponent

总结 使用公共组件的render方法能力 把挂载属性props的方法 把内容渲染到子组件中

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容