如果我使用这样的东西设置样式:
<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
等元素属性?
答案 0 :(得分:6)
使用refs。
首先,在JSX元素上连接ref
属性:
<div ref="myElement" style={this.setStyle()}>
然后,在setStyle
方法中使用此引用,以访问组件的DOM节点(实际HTMLElement)offsetLeft
或scrollLeft
或您需要的任何其他内容。
setStyle () {
// ...
// this.refs.myElement is the DOM element
const offsetLeft = this.refs.myElement.offsetLeft;
return style;
}