javascript - MUI 选择 |更改所选值在输入中的显示方式

标签 javascript html reactjs material-ui

我有一个对象数组,我想在 MenuItem 中绑定(bind)对象的多个属性,但我只想显示要在 Select 中显示的单个属性。 p>

enter image description here

在上图中,它在选择显示中显示 10-xyz,它应该只显示 10。

const [age, setAge] = React.useState("");
  const [options, setOptions] = React.useState([
    {
      name: "xyz",
      age: "10"
    },
    { name: "xyz", age: "20" }
  ]);
  const handleChange = (event) => {
    setAge(event.target.value);
  };

  return (
    <Select
      labelId="demo-simple-select-label"
      id="demo-simple-select"
      value={age}
      label="Age"
      onChange={handleChange}
    >
      {options.map((ele) => {
        return(<MenuItem value={ele.age}>
          {`${ele.age}-${ele.name}`} 
        </MenuItem>)
      })}
    </Select>
  );
}

最佳答案

使用 renderValue 属性来改变 SelectInput 组件中显示值的方式:

<Select renderValue={(p) => p}

您的代码中还有 2 个问题:

  1. 您应该在 MenuItem 中传递一个 key 以区分列表中的每个项。参见 this以获得更多解释。

  2. 如果您想为您的选择显示标签,您应该使用TextField而不是Select > 如我的其他文章所述answer .

我已经在下面的演示中解决了这两个问题。

有关引用,请参阅选择 API here .

Codesandbox Demo

关于javascript - MUI 选择 |更改所选值在输入中的显示方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69648684/

相关文章:

reactjs - 'proper' 在使用钩子(Hook)间隔后更新 react 组件的方法是什么?

javascript - 如何在另一个页面中突破一个对象框?

javascript - 给很多 DIV margin-left 很慢

html - 有没有一种有效的方法可以用 HTML 元素包装 dt 和 dd?

html - 隐藏没有 ID 或类的 DIV

html - 如何制作非 -"screen"媒体类型不显示的部分

javascript - 在 Node js中的一个函数内调用多个函数

javascript - 将文本值输入到 div 中?

node.js - 推送到 vercel 后无法连接到 websocket 服务器

reactjs - React 抽屉导航的状态? (打开或关闭)