在使用 react-select Select 的同一网格中时,文本字段不会拉伸

Posted

技术标签:

【中文标题】在使用 react-select Select 的同一网格中时,文本字段不会拉伸【英文标题】:Textfields aren't stretching when in same Grid with react-select Select 【发布时间】:2020-01-11 16:03:13 【问题描述】:

这是最近的问题,仅在 Chrome(版本 76.0.3809.132)上发生。我有一个真正简单的对话框,其中包含一个材质 ui (v4.3.3) 网格、一些 TextField 和 2 个 react-select(v3.0.4) 选择框。容器设置为 justify flex-start 和 alignItems stretch。输入控件被简单地包裹在 Grid 项目中,所有项目都设置了 fullWidth。我看到的问题是在渲染时,TextFields 不会拉伸 Grid 的整个宽度,而 Selects 会。这就是有趣的地方,如果我在组件中循环焦点,则一旦 react-select Select 组件获得焦点,TextFields 将捕捉到全宽,如果我只是单击 react-select Select 组件,也会发生这种情况。如果我将选项卡循环切换回 TextFields,它们会迅速恢复到原来的发育不良宽度。

如果我从 Grid 中删除 Selects,TextFields 会按预期拉伸容器的宽度。我已经从 react-select Select 中删除了所有自定义样式,它仍然表现出相同的行为(TextFields 显示不是全宽)。我还尝试了围绕 react-select、react-select-material-ui 的单独的 3rd 方反应包装器,它仍然表现出相同的行为。

        <Grid
          container
          direction="column"
          justify="flex-start"
          alignItems="stretch"
        >
          <Grid item>
            <Select ... />
          </Grid>
          <Grid item>
            <TextField ... />
          </Grid>
          <Grid item>
            <TextField ... />
          </Grid>
          <Grid item>
            <TextField ... />
          </Grid>
          <Grid item>
            <Select ... />
          </Grid>
        </Grid>

如前所述,直到最近这才按预期工作,并且仅在 Chrome 中发生。我的期望是 TextFields 将一致地呈现容器的整个宽度。

【问题讨论】:

【参考方案1】:

最新版本的 Chrome(版本 77.0.3865.75)似乎已修复呈现问题。现在一切都在按预期呈现。

【讨论】:

以上是关于在使用 react-select Select 的同一网格中时,文本字段不会拉伸的主要内容,如果未能解决你的问题,请参考以下文章

react-select:如何解决“警告:道具`id`不匹配”

修复 react-select 下拉列表的高度(React Material UI)

在使用 react-select Select 的同一网格中时,文本字段不会拉伸

react-select:禁用默认样式

使用 cypress 选择 react-select 下拉列表选项

Formik官方应用案例解析使用react-select