javascript - 如何构建自定义material-ui组件

标签 javascript reactjs material-ui material-design

我必须自定义 TextField组件来构建持续时间组件。
enter image description here
enter image description here
任何帮助,将不胜感激。

最佳答案

我认为简单地为您提供一个实现并不符合 SO 的精神,因此我将尝试帮助您打破这一点,并为您指明应该对您有帮助的文档的方向以及一种可行的方法为你。
看起来您需要将一些较低级别的 MUI 组件组合在一起。看看MUI TextField关于定制的文档,您可以看到使用 InputBase 的示例,您可能需要。
这里的另一点是任何 TextField MUI 中的组件将为您提供更改事件的单个值。看起来你在这里拥有的是一个复合值。

function DurationField({ value, onChange }) {
  // For example, you could model the value for this field to be an array of two values.
  const [hours, minutes] = value
  return (
    // instead of div, you may need FormControl and FormControlLabel, etc.
    <div>
      <InputBase value={hours} onChange={(e) => {
        onChange([e.target.value, minutes])
      }} />
      <InputBase value={minutes} onChange={(e) => {
        onChange([hours, e.target.value])
      }} />
    </div>
  )
}
您还必须考虑焦点状态会是什么样子。用户如何使用键盘导航进入、通过和退出此输入?这些风格是什么样的?
但从这里,你应该看看 FormControl等等,您可以在 TextField 的底部找到所有较低级别的组件我链接到的文档页面。通过使用这些,在需要的地方仔细覆盖样式,并精心设计 value/onChange Prop ,您应该能够制作一个在 MUI 世界中运行良好的组件。

关于javascript - 如何构建自定义material-ui组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64872713/

相关文章:

javascript - 如何使用 react 和样式组件制作 Accordion 菜单

node.js - 如何在运行reactjs+meteor应用程序时禁用控制台日志

css - 使用 SX 属性创建动画 - MUI v5

javascript - 在 Javascript/Node.js 中获取所选选项

javascript - 环回中的写保护属性

javascript - 使用javascript选中复选框时播放音频

reactjs - 如何使一个 Material 表列的编辑模式字段类型依赖于另一列的值,而不影响其他行?

javascript对象,自引用问题

javascript - 无法为 apexcharts 获取正确格式的数据

html - 如何像这样使用 React 和 Material-UI 制作应用栏?