我在响应本机代码中执行此操作,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

09-21 00:08