我从@ material-ui / core获得具有此TextField的Formik表单:
<TextField
autoFocus
fullWidth
name='name'
label='Name'
variant="outlined"
onChange={handleChange("name")}
helperText={errors.name ? errors.name : "What's your name?"
error={errors.name}
touched={touched.name}
value={values.name}
/>
当第一次加载表单并将initialValues
设置为空的user
对象时,此功能非常有用。名称输入将集中显示。
但是,当使用现有的用户对象加载表单时(在“编辑”操作过程中,它会正确加载所有字段,但不再有焦点。
此表单在无状态功能组件内部,props.user
来自父组件。
关于这种情况下如何设置焦点的任何想法?有什么地方可以联系我的?
#######编辑1 ####### >>
我尝试使用useEffect
,但是在实际使用值更新输入字段之前将其触发...
useEffect
我的猜测是,我需要在父组件中放置一个
useEffect(() => { debugger; textInput.focus(); // at this point the input field hasn't gotten the value yet. })
...
我具有来自@ material-ui / core的此TextField的Formik形式:
调试一段时间后使其正常工作...