了解React引用-为什么我的引用在这里为空?

时间:2019-06-22 20:49:47

标签: reactjs hammer.js

我有一个用例,其中React引用很有意义。

我尝试了几种不同的实现方式,在这种情况下,将它们与Hammerjs集成在一起。

我主要是解决这个问题:

adding hammerjs to a react js component properly

我在渲染器中的return方法是这样的:

  return (
    <div className={"App card-row card-color " + this.props.className} ref={
      (el) => this._slider = el
  }>
          {this.state.bubblemsg ? (
    <NotifBubble message={this.state.bubblemsg} merchant={this.props.merchant.merchant}/>
  ) : (
   null
  )}
      <ScrollMenu
        data={this.state.list}
        inertiaScrolling={true}
        transition={.1}
        inertiaScrollingSlowdown={.000001}
      />
    </div>
  );

我认为会将div元素作为参考。

然后在我的componentDidMount()方法中,将其附加到锤子上:

componentDidMount() {
  this.hammer = Hammer(this._slider)
  this.hammer.on('swipeleft', console.log("swipe left"));
  this.hammer.on('swiperight', console.log("swipe right"));
}

但是,我遇到了错误:

TypeError: Cannot read property 'addEventListener' of undefined

这与Hammer直接相关,因此也是我假定的参考。

那么我的参考文献有什么错呢?我不完全了解它们应该如何工作,React教程的解释也不是很清楚,因此进行详尽的解释会很有用。

1 个答案:

答案 0 :(得分:0)

我认为问题在于,在听锤子时,您必须传递一个要调用的函数,尝试插入箭头函数进行记录

`couldn't connect to "xxxxxxx": googleapi: Error 400: Missing parameter: project., required`