当前位置: 首页 > 知识库问答 >
问题:

使用材质-用户界面的TextField和getInputProps在输入旁边创建标签

颜思淼
2023-03-14

我正在使用一个材质用户界面TextField来创建一个输入和一个带有降档的预输入选择器类型组件的标签。

我看了演示,得到了这个:

<FormControl fullWidth className={classname}>
    <TextField fullWidth InputProps={ inputProps } InputLabelProps={ inputLabelProps } />
</FormControl>

我的inputProps等于:

const inputProps = getInputProps({ //passed in by {...downshiftProps} on the parent
    onChange, onKeyDown, disabled, error, label, value: inputValue,
    startAdornment: selectedItems.map(item => ...)
});

const inputLabelProps = getLabelProps({ //passed in by {...downshiftProps} on the parent
    disabled, required, error, disabled, shrink: true, id: inputProps.id
});

我的前任在材料 UI 输入标签组件上定义了这些输入标签Props 属性,但是为了让由属性标记的咏叹调工作,我使用了单个 TextField

打印出输入和标签道具的内容提供:

//labelProps
{
    disabled: false,
    error: false,
    htmlFor: "downshift-0-input",
    id: "downshift-0-label",
    required: undefined,
    shrink: false
}

//inputProps
{
    aria-activedecendant: null,
    aria-autocomplete: "list"
    aria-controls: null,
    aria-labelledby: "downshift-0-label",
    autoComplete: "off"
    disabled: false,
    error: false,
    id: "downshift-0-input",
    onBlur: f(event),
    onChange: f(event),
    onKeyDown: f(event),
    startAdornment: [],
    value: ""
}

我的问题是没有向DOM呈现标签。我得到的最接近的是一个带有label属性的div,它包装输入,但不显示任何内容。

p.s. 我见过带有标签的材料-ui文本字段,但我认为浮动标签文本不再存在了吗?答案中的链接已过期,并且与道具盖特斯模式不兼容。

共有1个答案

卫英悟
2023-03-14

下面是评论中提到的演示的一个稍微简化的版本:

演示的降档多个部分使用了一个标签。我只在我的沙盒中包含了第一个降档演示,但对其进行了修改,以使用与“多个”演示相同的标签。标签不属于输入标签Props,它只是文本字段的一个属性。在演示中,这有点令人困惑,因为标签被指定为传递给delageInput的对象的属性,因此它最终只是作为...其他对象,它是跨到文本字段

如果您查看< code>TextField的相关代码,您会看到:

    {label && (
      <InputLabel htmlFor={id} ref={this.labelRef} {...InputLabelProps}>
        {label}
      </InputLabel>
    )}

在这里,您可以看到InputLabelProps不会影响标签的内容,只会影响其他影响其呈现的属性,因此您需要将labelTextField上。

 类似资料:
  • 创建和使用材质 通过主菜单 Assets->Create->Material 或项目视图的上下文菜单,可以创建一个新材质。 默认情况下,新建材质会分配标准着色器,并且所有属性都空着,就像这样: 一旦材质被创建,你就可以把它应用到一个对象,并且在 检视视图 中修改它的所有属性。想把材质应用到一个对象上,只需要把材质从 项目视图 拖动到 场景是图 或 层级视图 中的任意对象上。 设置材质属性 你可以为

  • 问题内容: 为什么不清楚MenuItem如何导航到其他路线? 例如,当单击菜单项时,我要路由到“ /帐户” 我可以使用onclick函数来实现这一点,但是我敢肯定有一种更简单的方法。请告诉我有关它的信息,我想在我的项目中实现它。 顺便说一句,当使用containerElement时,出现以下错误: 当我通过-> 修复该错误时,该错误消失了,这是一个好消息,但坏消息是该菜单没有适用于Link中提到的

  • 问题内容: 我有一个非常基本和已知的表单方案,需要正确对齐输入旁边的标签。但是我不知道该怎么做。 我的目标是使标签在右侧输入旁边对齐。这是期望结果的图片示例。 在此处输入图片说明 为方便起见,我做了一个小提琴,以澄清我现在所拥有的-http://jsfiddle.net/WX58z/ 片段: 问题答案: 一种可能的解决方案: 给标签display: inline-block; 给他们一个固定的宽度

  • 我正在尝试使用谷歌开发的Material按钮。由于依赖第三方,我无法使用androidx存储库,因此我目前正在使用android支持库(v28.0.0-alpha1、alpha3不允许我使用material按钮) 我试图通过一个宽按钮来实现这一点,在文本旁边有一个居中的文本图标: 但我能得到的只是一个居中的文本,按钮边缘有一个图标: 这和最初的Android按钮一样,它也有同样的问题。当时的想法是

  • 问题内容: 我正在努力实现的目标 我有两个类- 和-我想影响状态上的类(例如)。 我的尝试 我想显示上。 预期产量 : 电流输出: 环境 我在React.js中使用Material-UI。在这种情况下,我正在使用导出。 问题答案: 下面是正确的语法: 相关答案和文档: jss-plugins嵌套文档

  • 尝试为密码显示/隐藏功能创建角度指令。“显示/隐藏”可以工作,但是当尝试使用材质设计(mat)按钮时,它不会显示mat按钮,而是显示默认的html按钮。在我的指令中 在应用程序中。组成部分html我确实有一些按钮作为测试,所以我知道mat正在工作。 我的问题是使用一个使用innerHTML的指令如何让材质设计按钮工作? 谢谢