javascript 如何在Reactjs中为Autocomplete TextField MUI v5添加图标?

prdp8dxp  于 2023-05-12  发布在  Java
关注(0)|答案(2)|浏览(170)

嗯,我做了一个自动完成使用下面的代码,并试图显示其图标后,选择每个项目,但它没有工作!

import { useState } from 'react'
import { TextField,InputAdornment ,Autocomplete,Box} from '@mui/material';
import v1 from './v1.svg';
import  v3 from './v2.svg';
import  v4 from './v3.svg';
import  v4 from './v4.svg';
function App() {
   const [useicon ,setUseicon]=useState(v1);
   const options=[
      {'label':"تتر","icon":v1},
      {'label':"بایننس",'icon':v2},
      {'label':"بی اس دی",'icon':v3},
      {'label':"دای",'icon':v4},
   ]
  return (
   <div>
   
       <Autocomplete
        options={options}
        getOptionLabel={(option) => option.label}
        onChange={(e,value)=>{setUseicon(value['icon'])}}
        sx={{width:"300px"}}
        renderOption={(props, option) => (
          <Box component="li" {...props}>
            <img src={option.icon} style={{width:"50px",height:"50px"}} alt={option.label} />
            {option.label}
          </Box>
        )}
        renderInput={(params) => (
          <TextField
            {...params}
            inputProps={{
              ...params.inputProps,
              startAdornment: <InputAdornment position='end'>
                    <img src={useicon} />
              </InputAdornment>  ,
            }}
          />
        )}
       />
   </div>
 )
}
 export default App;

一些注意事项:
1-所有的导入都是正确的,没有问题
2-以同样的方式,图标显示在TextField组件中。
3-如果有一个错字,知道它是在这个职位,而不是在程序本身
请帮助我,因为这对我很重要。

r3i60tvu

r3i60tvu1#

inputProps替换为InputProps

InputProps={{
  ...params.InputProps,
  startAdornment: (
    <InputAdornment position='end'>
      <img src={useicon} />
    </InputAdornment>  
  ),
}}

inputProps是您应用于input Dom元素的属性,但InputProps是您分配给MUI Input元素的属性。
更多数据Here

xxslljrj

xxslljrj2#

您可以使用自动完成组件上提供的popupIcon属性。

<Autocomplete
  options={[]}
  popupIcon={<Chevron />} <-- place svg here
  renderInput={(params) => (
    <TextField {...params} />
  )}
/>

如果您需要在多个地方使用它,您可以使用主题文件对其进行自定义:

MuiAutocomplete: {
  defaultProps: {
    popupIcon: <Chevron />,
  },
  styleOverrides: {
    root: {
     
    },
  },
},

相关问题