ref.on,ref.off with React

时间:2017-07-11 21:12:44

标签: javascript reactjs

在阅读关于React的教程时,我注意到以下代码。

componentDidMount () {
ref.on('value', function (snapshot) {
  this.setState(function () {
    return {
      friends: snapshot.val()
    }
  })
}.bind(this)
}

' ref.on'方法来自哪里?这是React的一部分,还是一个JavaScript函数?我无法在https://facebook.github.io/react/docs/react-api.htmlhttps://developer.mozilla.org/en-US/docs/Web/JavaScript找到它。此外,还有' ref.off'在React组件的另一个地方。

componentWillUnmount () {
  ref.off()
}

编辑:

知道它可能是伪代码很有帮助。它来自这门课程https://learn.tylermcginnis.com/courses/50507/lectures/762618。但你必须登录才能查看它。它在React生命周期事件部分。

我在询问' .on'和' .off'零件,而不是' ref'。

2 个答案:

答案 0 :(得分:0)

ref是对已安装组件的引用。使用ref,您将能够访问已安装组件的类方法。

class Foo extends Component {

    render() {
        return <span onClick={this.onDivClick}>hi</span>
    }

    onSpanClick = () => {
       // do something
    }
}

class Bar extends Component {

    render() {
        return <div onClick={this.onDivClick}>
                  <Foo ref={c => this.ref = c}/>
               </div>
    }

    onDivClick = () => {
       this.ref.onSpanClick() // reference to the mounted Foo instance and call the method onSpanClick
    }
}

答案 1 :(得分:0)

看起来像jQuery的添加和删除事件侦听器的方法。可能只是以它为例。