美文网首页
ref属性不只是string

ref属性不只是string

作者: 冷洪林 | 来源:发表于2017-01-10 10:38 被阅读65次

    ref属性不仅接受string类型的参数,而且它还接受一个function作为callback。这一特性让开发者对ref的使用更加灵活。

     render: function() {
        return (
          <TextInput
            ref={function(input) {
              if (input != null) {
                input.focus();
              }
            }} />
        );
      },
    

    在ES6中我们可以使用箭头函数来为组件的ref设置一个callback。

     render() {
        return <TextInput ref={(c) => this._input = c} />;
      },
      componentDidMount() {
        this._input.focus();
      },
    

    需要提醒大家的是,只有在组件的render方法被调用时,ref才会被调用,组件才会返回ref。如果你在调用this.refs.xx时render方法还没被调用,那么你得到的是undefined。

    心得:ref属性在开发中使用频率很高,使用它你可以获取到任何你想要获取的组件的对象,有个这个对象你就可以灵活地做很多事情,比如:读写对象的变量,甚至调用对象的函数。

    相关文章

      网友评论

          本文标题:ref属性不只是string

          本文链接:https://www.haomeiwen.com/subject/kmjkbttx.html