前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >(三)回调 ref 中调用次数问题

(三)回调 ref 中调用次数问题

作者头像
老怪兽
发布2023-02-22 14:25:08
6900
发布2023-02-22 14:25:08
举报
文章被收录于专栏:老怪兽的前端之旅

# 🍇一、回调形式的 ref 的调用次数

代码语言:javascript
复制
class Demo {

    showInfo = () => {
        let {input} = this
        alert(input.value)
    }

    render() {
        return (
            <div>
                <input ref={(currentNode) => this.input = currentNode; console.log('@', currentNode)}/>
                <button onClick={this.showInfo}>点我提示输入数据</button>
            </div>
        )
    }
}

ReactDOM.render(<Demo/>, document.getElmentById('test'))
  1. 能够正常出来,页面加载就调用一次

# 二、关于回调形式 refs 的说明

  1. 当组件发生更新时,就会出现这个问题,用代码来实际演示一下
代码语言:javascript
复制
class Demo {

    state = {isDemo = true}

    showInfo = () => {
        const { isDemo }  = this.state
        this.setState({
            isDemo: !isDemo
            })
    }

    render() {
        const {isDemo} = this.state
        return (
            <div>
                <input ref={(currentNode) => this.input = currentNode; console.log('@', currentNode)}/>
                <div>{ isDemo ? '炎热':'凉爽' }</div>
                <button onClick={this.showInfo}>点我切换天气</button>
            </div>
        )
    }
}

ReactDOM.render(<Demo/>, document.getElmentById('test'))
  1. 内联写法的问题出现了

# 三、解决上面出现的这种问题,写成类绑定的函数

代码语言:javascript
复制
class Demo {


    saveInput = (c) => {
        this.input = c
        console.log(c)
    }

    render() {
        const {isDemo} = this.state
        return (
            <div>
                <input ref={this.saveInput}/>
                <button onClick={this.showInfo}>点我切换天气</button>
            </div>
        )
    }
}

ReactDOM.render(<Demo/>, document.getElmentById('test'))
  • 不管点击多少下按钮,都只会调用一次,都不会重复去调用这个函数,因为它放在了类的自身了

# 总结

上面出现的问题是无关紧要的,在我们正常开发中,基本上都是写内联样式

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2023年1月17日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • # 🍇一、回调形式的 ref 的调用次数
  • # 二、关于回调形式 refs 的说明
  • # 三、解决上面出现的这种问题,写成类绑定的函数
  • # 总结
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档