React native 访问本机web中的底层DOM节点
在react native web中创建自定义组件时,我希望访问视图组件的底层DOM节点以添加/删除eventListenerReact native 访问本机web中的底层DOM节点,react-native,react-native-web,React Native,React Native Web,在react native web中创建自定义组件时,我希望访问视图组件的底层DOM节点以添加/删除eventListener class MyButton extends React.Component { render() { return ( <View ref={component => this._root = component}> <Text>{this.props.label}</Text>
class MyButton extends React.Component {
render() {
return (
<View ref={component => this._root = component}>
<Text>{this.props.label}</Text>
</View>
)
}
}
作为替代解决方案,我尝试直接呈现组件,然后附加eventListener:
<div
ref={e => (this.el = e)}
tabIndex="-1"
>
<WrappedComponent {...this.props} />
</div>
this.el.addEventListener('sn:focused', this._componentFocused);
这是可行的,但我还想在这个组件上设置一个样式,最好是通过道具传递的样式。这似乎不起作用,因为react本机样式与DOM节点样式不同
那么,这里的最佳解决方案是什么?继续使用div组件并以某种方式重新格式化样式,或者使用视图并以某种方式访问底层DOM节点以附加侦听器
this.el.addEventListener('sn:focused', this._componentFocused);