material-ui 在MUI模态框中,输入元素在第一次聚焦后会变得模糊,

oxosxuxt  于 4个月前  发布在  其他
关注(0)|答案(6)|浏览(43)

重复问题

  • 我搜索了现有的问题

最新版本

  • 我测试了最新版本

重现步骤 🕹

我正在使用Material UI组件,并且遇到了这个问题:当我打开模态框并尝试在模态框中聚焦任何输入元素(例如,第一次聚焦会立即模糊)。第二个聚焦等行为正常(焦点会持久化)。我尝试使用Modal props disableAutoFocus,disableRestoreFocus,disableEnforceFocus,但这些都没有用。
这是我的最小示例代码:(当我打开模态框并首次聚焦文本字段时,焦点会立即模糊)

<Modal
        open={!!editTemplateId}
        onClose={() => setEditTemplateId(undefined)}
      >
        <Box
          sx={{
            width: '600px',
            ...modalStyles,
          }}
        >
          <TextField
            variant="filled"
            label={t('edit-modal.subject')}
            sx={{ width: '100%', mb: 2 }}
            value={ts}
            onChange={(e) => st(e.target.value)}
          />
        </Box>
      </Modal>

当前行为 😯

组件中的输入元素在第一次聚焦时会立即失去焦点

预期行为 🤔

输入元素的焦点应该持久化

上下文 🔦

  • 无响应*

你的环境 🌎

npx @mui/envinfo

Don't forget to mention which browser you used.
  Output from `npx @mui/envinfo` goes here.
4c8rllxm

4c8rllxm1#

@adammartiska 你能在CodeSandbox上制作一个复现吗?你可以克隆这个模板:https://mui.com/r/issue-template-latest

oaxa6hgo

oaxa6hgo2#

你好,我不知道为什么,但我在我的应用中运行了与这里的代码沙箱相同的示例(只是组件的层次结构略有不同 - 模态框被单独的组件外包),但在我的应用程序中,它仍然在第一次聚焦后模糊。在代码沙箱中,这个问题无法重现(我也匹配了依赖项中的MUI版本 - 我正在使用5.6.1)
这里是沙箱链接 - https://codesandbox.io/s/gifted-star-3dcyjk?file=/src/App.tsx

zpqajqem

zpqajqem3#

这是一个当前行为的简短视频:
IMG_7513.MOV

kx1ctssn

kx1ctssn5#

对不起,我没有尽快回复这个问题。你能至少在仓库里提供一个可复现的版本供我尝试吗?

ddhy6vgd

ddhy6vgd6#

我们也在经历这个问题,尽管我们在不同的环境中发现它的行为不同。在同一个浏览器、同一个版本、同一个代码的情况下,两个人中的一个遇到了这个bug,而另一个没有。这与在这个沙盒帖子中经历的行为相呼应。如果我们找到了解决方案,我们会在这里发布

编辑:为了进一步增加混乱,我们使用的是 Dialog 组件而不是 Modal ,实际上我们的组件在第一次点击时就能正常聚焦,但是当我们在 Dialog(一个被选中的复选框)中更新状态时,输入框就像上面展示的那样中断了

编辑2:无论好坏,更新我们的包似乎解决了我们所有的问题。我们已经从:

"@emotion/react": "^11.10.5",
    "@emotion/styled": "^11.10.5",
    "@mui/material": "^5.10.14",
    "@mui/x-data-grid": "^5.17.11",

迁移到了:

"@emotion/react": "^11.11.1",
    "@emotion/styled": "^11.11.0",
    "@mui/material": "^5.14.13",
    "@mui/x-data-grid": "^6.16.2",

相关问题