javascript - 在 React 中手动更改 DOM
问题描述
我正在使用 Ionic 的IonPicker
组件,它作为React 的兄弟div#root
呈现一个ion-picker
元素,该元素似乎是一个全屏覆盖,它有两个子元素:一个ion-backdrop
元素和它的兄弟元素div.picker-wrapper
。
我正在尝试仅提取div.picker-wrapper
元素,以便可以将其相对于我的应用程序中的其他组件放置,并且我还希望能够向其添加元素,例如作为 的子元素的按钮div.picker-wrapper
和该按钮必须是一个反应组件。所以我想个人访问div.picker-wrapper
's 现有的孩子div.picker-toolbar
和div.picker-columns
, 也会很好。
当然,我需要能够使用IonPicker
's 的道具和方法以及一切。
所以我试图抓取 DOM 元素并删除它们,移动它们,诸如此类的东西,当然我不希望用户看到东西消失和重新出现,所以,就是这样。
我想答案涉及“使用参考”,所以请提供更多细节。首先,我尝试过
picker: RefObject<HTMLIonPickerElement> = React.createRef();
render() {
return (
<IonPicker
isOpen
ref={ this.picker }
animated={ true }
mode={ 'ios' }
cssClass={ 'firmm-picker' }
columns={ this.columns }
onDidDismiss={ this.props.dismiss }
buttons={ this.buttons }
showBackdrop={ false }
/>
);
}
但是picker
和/或picker.current
总是未定义或为空。
const x = document.getElementById('ion-overlay-1')
而且我在不同的地方(componentDidMount
, render
, )都试过了shouldComponentUpdate
,但从来没有。
解决方案
推荐阅读
- spring - Spring Boot Async 函数问题 AsyncRequestTimeoutException 然后下一个连接失败
- javascript - javascript数组将一个对象移到前面
- mysql - MacBook Catalina 上的 MySQL 和 Workbench - 未建立连接 3306 127.0.0.1
- reactjs - 在反应式中每个文本输入多次获取
- java - 如何使用 JNI 从 C 中的 Oobject 获取 Object 的 fieldID?
- excel - VBA - 每次单击按钮时复制不同单元格中的值
- http - NoSuchMethodError:在 null 上调用了方法“get”。http请求
- r - R的新手,想知道是否有人可以帮助我
- python - 使用 ast 创建具有默认值的仅关键字参数的函数
- sparql - SPARQL - 删除整个 rdf:任意长度的列表