那十几万分之一

导航

统计

关于react 的render props 如何使用

最近开始复习react内容,看到这块的时候想起来以前也没用过,就写了一个小例子看看,代码如下

复制代码
import React from 'react';

class Tip extends React.Component{
    render() {
        const pos = this.props.pos;
        console.log('ps', pos)
        return (
            <div style={{position: 'fixed', backgroundColor: "#234567",left:pos.left, top: pos.top, visibility: pos.vis}}>
                <h1>{pos.title}</h1>
                <p>{pos.content}</p>
            </div>
        )
    }
}


class Btn extends React.Component{
    constructor(props) {
        super(props);
        this.state = {
            left: '200px',
            top: '50px',
            vis: 'hidden',
            title: '这是title',
            content: '这是content'
        }
        this.clickBtn = this.clickBtn.bind(this)
    }

    clickBtn() {
        let viss = this.state.vis === 'hidden' ?  'visible' : 'hidden';
        this.setState({
            vis: viss
        })
    }

    render() {
        return (
            <div style={{width:'80px', height:'32px', backgroundColor: '#892749'}} onClick={this.clickBtn}>
                点击按钮
                {this.props.render(this.state)}
            </div>
        )
    }
}

class TipShow extends React.Component{
    render() {
        
        return (
            <>
                <Btn render={pos => {
                    console.log(pos)
                    return <Tip pos={pos} ></Tip>
                }}>
                    
                </Btn>
            </>
        )
    }
}

export default TipShow
复制代码

 

posted on   那十几万分之一  阅读(36)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 一起来玩mcp_server_sqlite,让AI帮你做增删改查!!
点击右上角即可分享
微信分享提示