如何将 HMTL 属性设置为 Material UI InputProps?

Posted

技术标签:

【中文标题】如何将 HMTL 属性设置为 Material UI InputProps?【英文标题】:How to set HMTL attribute to Material UI InputProps? 【发布时间】:2021-07-10 17:52:05 【问题描述】:

我正在使用带有 Material UI 文本字段的 react-number-format,并且我正在尝试在我的字段中添加 100 的 max 属性。例如,不允许超过 100 的数字。 如何使用 html 属性执行此操作:min?

import InputAdornment from "@material-ui/core/InputAdornment";
import TextField from "@material-ui/core/TextField";
import NumberFormat from "react-number-format";


interface IProps 
  endAdornment?:React.FC;
  error?: string;
  fixedDecimalScale?: boolean;
  fullWidth: boolean;
  label: string;
  numberLimit: number;
  onChange: () => void;
  placeholder: string;
  thousandSeparator: boolean;
  touched?: boolean;
  value: number;
  variant: string;
  inputComponent?: React.FC;




  return (
    <NumberFormat
      InputProps=
        props.inputComponent
          ? 
              endAdornment: (
                <InputAdornment position="start">
                  props.inputComponent
                </InputAdornment>
              ),
            
          : null
      
      inputProps= max: 100 
      customInput=TextField
      decimalScale=0
      error=Boolean(props.error) && props.touched ? true : false
      fixedDecimalScale=props.fixedDecimalScale
      fullWidth=props.fullWidth
      helperText=
        Boolean(props.error) && props.touched ? props.error : undefined
      
      id=id
      label=props.label
      margin="normal"
      onChange=props.onChange
      placeholder=props.placeholder
      thousandSeparator=props.thousandSeparator
      value=props.value
      variant=props.variant
    />
  );
;

export default NumberField;

我也尝试将它添加到 InputProps 中,但我似乎无法找出正确的格式。 我知道 NumberFormat 带有 prop isAllowed 但我想尝试使用 HTML 属性设置它。

【问题讨论】:

【参考方案1】:

我尝试将它添加到 InputProps 中

将属性传递给原生input 元素的正确道具是<em><strong>i</strong></em>nputProps,而不是<em><strong>I</strong></em>nputProps,注意小写的“i”。

<TextField  type: "number", min: 0, max: 10  />

结果:

<input type="number" max="10" min="0">

【讨论】:

它的行为仍然不正确。它让我输入超过 100 的数字 @WonderDev 按预期工作,你可以输入任何你想要的,如果值无效,你可以使用伪选择器:invalid 来设置错误输入的样式。请参阅max 属性。我的回答只涉及将属性传递给输入元素,您可以使用isAllowed 回调来限制用户可以按照问题中的建议键入的内容。

以上是关于如何将 HMTL 属性设置为 Material UI InputProps?的主要内容,如果未能解决你的问题,请参考以下文章

Angular Material:如何将 floatPlaceholder 设置为从不

ReactJS + Material-UI:如何使用 Material-UI 的 <DatePicker> 将当前日期设置为默认值?

如何将对象设置为表单值以与 Material UI 做出反应?

如何将 material-ui TextField 设置为仅接受十六进制字符

如何根据文本字段 Material UI 中设置的值将对象设置为状态

如何在 Material-UI 中为对话框设置高度?