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