所选选项未显示在 Material UI select 字段框中

Selected option not showing in Material UI select field box

我使用 Mui 创建了一个 select 组件,但每当我单击 select 下拉列表中的任何选项时,它都会以我定义的状态正确存储,但不会显示在 select 盒子.

这是我的 JSON 对象:

const SampleData = [
{
  "type": "button",
  "display": "RELEASE",
  "key": "key1",
  "value": [
    
    { 
      "type": "text", 
      "display": "Are you sure to reject this", 
      "key": "key2", 
      "value": "val10" 
    }, 
    { 
    "type": "select", 
    "display": "select reason", 
    "key": "key3", 
    "value": [
      { "type": "option", 
      "display": 
      "Wrong Truck number entered", 
      "key": "key4", 
      "value": "val1" 
    }, 
    { "type": "option", 
    "display": "Floors having intrusions", 
    "key": "key5", 
    "value": "val1" 
  }] 
    }         
  ]
}]

我的组件SelectField.js:

const SelectField = ({ SampleData }) => {

  const [selectValue, setSelectValue] = useState('');
  const [selectfieldres, setSelectFieldRes] = useState([]);
  
  useEffect(() => {
    SampleData.map((item, index) => {
      if (item.type === 'select') {
        if (typeof item.value === "object") {
          setSelectFieldRes(item.value)
        }
      }
    })

  }, [])

  
  const onChangeHandler = (e, display) => {
    const selectedText = e.target.innerText;
    console.log(selectedText)
    selectfieldres.map((item, index) => {
      if(item.display !== selectedText){
        localStorage.removeItem('select' + item.display)
      }
    }
    )
    
    if (selectedText) {
      setSelectValue({selectValue: selectedText})
      console.log(localStorage.getItem.name)
      localStorage.setItem('select' + selectedText, selectedText) 
    }
  }
  

  return (
    <Box>
      <FormControl sx={{ml: 5, my: 2, minWidth: 180 }}>
        <InputLabel id="demo-simple-select-label">select reason</InputLabel>
        <Select
          labelId="demo-simple-select-label"
          id="demo-simple-select"
          value={selectValue} 
          label="select reason"
          onClick={(e)=>{onChangeHandler(e,display)}}
        >
          {selectfieldres.map((item, index) => (
            item.type === 'option' &&
            <MenuItem value={item.display} key={index}>
              {item.display}
            </MenuItem>
          ))}
        </Select>
      </FormControl>
    </Box>
  );
}
export default SelectField;

以上组件的输出:

选项显示在下拉列表中

当我点击任何选项时,它显示为空

从表面上看,您没有为 selectValue 正确设置 state

const [selectValue, setSelectValue] = useState('');

这意味着 selectValuestring 类型。但是,在状态更新中,您正在尝试更改对象 属性.

setSelectValue({selectValue: selectedText});

您只需将字符串传递给 setState 方法即可。

setSelectValue(selectedText);