[OHIF-Viewers]医疗数字阅片-医学影像-获取焦点的2种方式-ref
Posted landv
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了[OHIF-Viewers]医疗数字阅片-医学影像-获取焦点的2种方式-ref相关的知识,希望对你有一定的参考价值。
[OHIF-Viewers]医疗数字阅片-医学影像-获取焦点的2种方式-ref
前言
在React中,只要props或state发生改变,则render()方法必定执行,即DOM会更新。然React更新DOM时,可能会导致已经获取焦点的元素失去焦点,故此时需要操作DOM,获取焦点。
方式一:
React.createRef()
使用React.createRef()方法可以创建一个存储dom的ref,当ref设置在组件上时,即可存储该元素的dom引用。
// index.js import React from ‘react‘ import CustomTextInput from ‘./CustomTextInput‘ class Parent extends React.Component { constructor(props) { super(props); // 创建一个ref存储dom元素 this.inputElement = React.createRef(); this.getFocus = this.getFocus.bind(this) } getFocus() { this.inputElement.current.focus() } render() { return ( <CustomTextInput inputRef={this.inputElement} inputGetFocus={this.getFocus} /> ) } } export default Parent
// CustomTextInput.js import React from ‘react‘ const CustomTextInput = (props) => { return ( <React.Fragment> <input type="text" ref={props.inputRef} /> <button onClick={props.inputGetFocus}>获取焦点</button> </React.Fragment> ) } export default CustomTextInput
方式二:使用函数
// index.js import React from ‘react‘ import CustomTextInput from ‘./CustomTextInput‘ class Parent extends React.Component { constructor(props) { super(props); this.getInputElement = this.getInputElement.bind(this) this.getFocus = this.getFocus.bind(this) } getFocus() { this.inputElement.focus() } getInputElement(el) { this.inputElement = el } render() { return ( <CustomTextInput inputRef={this.getInputElement} inputGetFocus={this.getFocus} /> ) } } export default Parent
OHIF是酱紫实现的:
<div className="ViewportDownloadForm" > <div style={{ height: viewportElementDimensions.height, width: viewportElementDimensions.width, position: ‘absolute‘, left: ‘9999px‘, }} ref={ref => setViewportElement(ref)} >
以上是关于[OHIF-Viewers]医疗数字阅片-医学影像-获取焦点的2种方式-ref的主要内容,如果未能解决你的问题,请参考以下文章
[OHIF-Viewers]医疗数字阅片-医学影像-安装问题
[OHIF-Viewers]医疗数字阅片-医学影像-获取焦点的2种方式-ref
[OHIF-Viewers]医疗数字阅片-医学影像-REACT-React.createRef()-Refs and the DOM关于回调 refs 的说明
借力云原生,预见医学影像“云阅片”和电子胶片的未来 | 精选案例