我在响应本机代码中执行此操作,eslint显示ref="drawer"
行错误
什么是正确的方法来做到这一点。
<DrawerLayoutAndroid
drawerWidth={300}
ref="drawer"
drawerPosition={DrawerLayoutAndroid.positions.Left}
renderNavigationView={() => navigationView}
</DrawerLayoutAndroid>
最佳答案
您需要将ref callback pattern
用作string refs are deprecated.
<DrawerLayoutAndroid
drawerWidth={300}
ref={(ref) => this.drawer = ref}
drawerPosition={DrawerLayoutAndroid.positions.Left}
renderNavigationView={() => navigationView}
</DrawerLayoutAndroid>
(ref) => this.drawer = ref
是箭头函数语法,您可以将其简化为constructor(props) {
super(props);
this.setRef = this.setRef.bind(this);
}
setRef(ref) {
this.setRef = ref;
}
...
ref={this.setRef}
检查此答案以获取更多信息
How to access a DOM element in React? What is the equilvalent of document.getElementById() in React