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

Pri*_*abi 3 html javascript reactjs material-ui

我有一个对象数组,我想绑定对象的多个属性MenuItem,但我只想显示要显示的单个属性Select

在此输入图像描述

在上图中,它在选择显示中显示 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>
  );
}
Run Code Online (Sandbox Code Playgroud)

Nea*_*arl 6

使用renderValueprop 更改组件Select中值的显示方式Input

<Select renderValue={(p) => p}
Run Code Online (Sandbox Code Playgroud)

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

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

  2. 如果您想显示 a ,您应该使用TextField而不是如我的其他答案中所述。SelectlabelSelect

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

如需参考,请参阅此处的SelectAPI 。

Codesandbox 演示