我做了一个表单,这样你就可以注册你的宠物,在文本字段(宠物类型)有一个MUI自动完成组件。我的问题是...有没有可能,当编辑这个宠物,MUI自动完成组件已经包含了数据库中的信息?我试过这个,它不工作。
//auto complete information... is working fine
const [tipos, setTipos] = useState<ITipo[]>([])
useEffect(() => {
axios.get<ITipo[]>(`http://localhost:8080/api/v1/tipo`)
.then(resposta => setTipos(resposta.data))
}, [])
//this part is not working, tring to fill the TextField when editing
const [tipo, setTipo] = useState<any | null>('')
useEffect(() => {
if (parametros.id) {
axios.get<IAnimal>(`http://localhost:8080/api/v1/pet/${parametros.id}/`)
.then(resposta => setTipo(resposta.data.tipo.nome))
}, [parametros])
<Autocomplete
onChange={(event, value) => setTipo(value)}
disablePortal
id="tiposAutoComplete"
options={tiposAutoComplete}
sx={{ width: 300, marginTop: 1 }}
renderInput={(params) =>
<TextField
{...params}
value={tipo}
id="especieField"
label="Tipos"
variant="standard"
required />}
/>
1条答案
按热度按时间rfbsl7qr1#
我明白了,MUI自动完成组件是一个react组件,它包含一个输入,所以我所要做的就是访问它里面的输入,这在documentation的“受控状态”主题下有解释。
下面是代码的外观: