当将初始值传递通过\绑定到props.object时,如何使用Formik表单将焦点设置为TextField \ input?

问题描述 投票:0回答:1

我从@ 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形式:

reactjs forms formik autofocus input-field
1个回答
0
投票

调试一段时间后使其正常工作...

© www.soinside.com 2019 - 2024. All rights reserved.