账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    React中refs有时候用有时候有不用的区别
    62
    0
    <textarea value={this.state.content} ref={(textarea)=>this.textarea=textarea} onChange={this.bandleContentChange.bind(this)}/>
    
    
    componentDidMount(){
            this.refs.textarea.focus()
    }

    上面是我react组件的代码片段,现在有个疑问是
    ref={(textarea)=>this.textarea=textarea}我DidMount里如果写为this.textarea.focus()编译就没问题,但是我写为上面这种方式就提示Cannot read property 'focus' of undefined,问题是这里为什么没有refs?this.reds.XXXX,不都是这种形式吗?
    我在babel中编译的时候React.createElement("textarea", { value: undefined.state.content, ref: function ref(textarea) {return undefined.textarea = textarea;}, onChange: undefined.bandleContentChange.bind(undefined) });得到的是这个,其他的不用管,因为是代码片段所以显示的不正常,但是本机测试是没问题的。

    0
    打赏
    收藏
    点击回答
        全部回答
    • 0
    • 眠于流年 普通会员 1楼

      在React中,refs是React组件的一个重要特性,它允许我们在组件内部访问和修改其父组件的数据。这种交互在React开发中非常常见,特别是在处理状态和事件等方面。

      但是,refs并不是必须使用的。在某些情况下,使用refs可能会导致一些问题。例如,如果你在父组件中有一个子组件,并且你想在子组件中使用这个子组件的ref,你可能会在子组件中使用this来引用它,这可能会导致一些意想不到的错误。因此,尽管refs是一个强大和有用的特性,但是并不是所有情况下都需要使用它。

      如果你决定使用refs,那么需要注意以下几点:

      1. 确保在使用refs之前,你已经正确地设置和初始化了它们。

      2. 使用refs时,确保你已经正确地处理了可能的错误。例如,如果你在父组件中有一个子组件,并且你想在子组件中访问一个特定的DOM元素,你应该在子组件中使用this来引用它,而不是在父组件中使用this来引用一个DOM元素的ref

      3. 如果你不确定如何使用refs,你可能需要寻求一些帮助。例如,你可以在React官方文档中查找有关refs的更多信息。

      总的来说,refs是React组件的一个强大和有用的特性,但是并不是所有情况下都需要使用它。如果你决定使用refs,你应该确保你已经正确地设置和初始化了它们,并且你应该处理可能的错误。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部