Reactjs 动态设置React元素焦点,无箭头功能
目前,我有以下代码运行良好:Reactjs 动态设置React元素焦点,无箭头功能,reactjs,material-ui,arrow-functions,currying,Reactjs,Material Ui,Arrow Functions,Currying,目前,我有以下代码运行良好: import React, { RefObject, useReducer, useRef, useState } from 'react'; import TextField from '@material-ui/core/TextField'; const MyComponent: React.FC = () => { const input1Ref = useRef<HTMLInputElement>(null);
import React, {
RefObject,
useReducer,
useRef,
useState
} from 'react';
import TextField from '@material-ui/core/TextField';
const MyComponent: React.FC = () => {
const input1Ref = useRef<HTMLInputElement>(null);
const input2Ref = useRef<HTMLInputElement>(null);
const [focusedElRef, setFocusedElRef] = useState<RefObject<HTMLInputElement>>(startDateRef);
return (
<div>
<TextField
inputRef={input1Ref}
autoFocus={true}
onFocus={() => setFocusedElRef(input1Ref)}
/>
<TextField
inputRef={input2Ref}
onFocus={() => setFocusedElRef(input2Ref)}
/>
</div>
)
}
import-React{
重新设定目标,
用户教育者,
useRef,
使用状态
}从"反应",;
从“@material ui/core/TextField”导入TextField;
常量MyComponent:React.FC=()=>{
const input1Ref=useRef(null);
const input2Ref=useRef(null);
const[focusedElRef,setFocusedElRef]=useState(startDateRef);
返回(
setFocusedElRef(input1Ref)}
/>
setFocusedElRef(input2Ref)}
/>
)
}
是否有一种方法可以使用从onFocus
方法自动返回的值,该值指示可以在另一个箭头函数中使用的输入引用,以正确调用setFocusedElRef
更新日期:2019年11月5日
我还需要稍后使用if(focusedElRef===input1Ref)
检查输入是否处于焦点
我知道这种优化是毫无价值的,但我还是很好奇
谢谢大家! 您只能使用一个onFocus函数,并且只能将一个当前焦点元素保持在以下状态: 创建的示例:
谢谢,但我如何检查当前输入是否处于焦点?抱歉,我不清楚这一点,我更新了我的问题。您的focusedEl是当前焦点还是最后一个焦点。是否要检查现在是否处于焦点:focusedEl==document.activeElement