获取当前元素?

时间:2016-12-25 14:22:08

标签: reactjs

如果我使用这样的东西设置样式:

<div style={this.setStyle()}>

  setStyle () {
    const style = {}
    if (this.state.fullScreen) {
      style.background = 'white'
      style.position = 'absolute'
      style.top = ???
    }
    return style
  }

如何在funciton setStyle中获取.offsetLeft.scrollLeft等元素属性?

1 个答案:

答案 0 :(得分:6)

使用refs

首先,在JSX元素上连接ref属性:

<div ref="myElement" style={this.setStyle()}>

然后,在setStyle方法中使用此引用,以访问组件的DOM节点(实际HTMLElement)offsetLeftscrollLeft或您需要的任何其他内容。

setStyle () {
  // ...

  // this.refs.myElement is the DOM element
  const offsetLeft = this.refs.myElement.offsetLeft;

  return style;
}