Form 中使用 Input 会自动失焦导致无法输入
NutUI React 包名
@nutui/nutui-react-taro
NutUI React 版本号
2.7.4
平台
weapp
重现链接
https://codesandbox.io/p/sandbox/nutui-react-2x-demo-fg4vxd?file=/src/App.tsx
重现步骤
<Form labelPosition="left" divider>
<Form.Item
label="手机号"
name="account"
rules={[{ required: true, message: '请输入手机号' }]}
required={false}
>
<Input />
</Form.Item>
</Form>
现象:点击 Input,发现 Input 自动失焦,无法输入内容
之前使用 2.7.0 版本没有这个问题,更新到 2.7.4 之后出现
期望的结果是什么?
能正常使用 Input
实际的结果是什么?
Input 无法输入
环境信息
No response
其他补充信息
No response
退回 2.7.0 版本 Input 使用正常
遇到相同的问题
https://github.com/oasis-cloud/nutui-react-taro3x-demo.git 在这个仓库中没复现出来,可以给这个仓库提交一个 demo 的 PR 吗?
@oasis-cloud 问题应该出在 focus={autoFocus},focus 是受控的,autoFocus 一直 false 的话就无法聚焦,直接用 active 就没问题了
@YeYbfwad
<Form.Item name="test">
<Input focus={autoFocus} />
</Form.Item>
是说这种情况吗?
@oasis-cloud 不是,是 Input 源码focus字段的赋值有问题,源码是 focus={autoFocus},但autoFocus 是 props 传参,默认值是 false,导致 focus 一直都是 false,视图更新后,就自动 blur 了
@YeYbfwad 按照 issue 中说的 “2.7.0 版本没有这个问题”,2.7.0 之后的版本中 Input 的实现一直是 focus={autoFocus}。你可以提供一份 Demo,以及操作的录屏吗?
@oasis-cloud 写的 demo 暂时复现不出来,比较奇怪,目前发现的现象是 input 的 style 都会变成[object,object],就会出现这种问题,但感觉像是 focus 字段赋值的问题
问题依旧在,我的Input层级:Cell.Group>Cell>Dialog>Form>Form.Item>Input,发现去除Cell.Group后焦点正常?(非100%成功,折腾了一天,已放弃),已按以下方法跳过此使用: https://github.com/jdf2e/nutui-react/issues/2323#issuecomment-2574289117
我的是 Popup 中加Form 就有这个问题, 但是正常页面不存在, 无法输入聚焦后直接失去焦点
遇到了同样问题,经过排查后发现input组件一旦嵌套超过13层,就会出现上述问题
就是版本问题。我原来的版本是2.3.10,后来升到了2.7以上就不行了,退回原版本正常了
确实可能是由于嵌套过多引起的,嵌套了过多后会增加了一层
我封装的自定义表单组件,就会出现这个问题。用Taro 原生Input 就没这个问题