【发布时间】:2021-11-17 08:36:57
【问题描述】:
我在 React 中使用 Material-UI Autocomplete 进行地址搜索/验证表单,并且我希望始终有一个默认选项,无论结果如何。
在 Angular 中,我使用 [displayWith] 和一个函数来告诉它始终显示具有特定 ID 的数组中的项目,但我不确定如何在 React 中执行此操作。我一直试图找出filterOptions,但我不希望它根据与输入相关的任何内容进行过滤,我只是希望它始终是一个选项。
在这个简化的示例中,如果我希望它始终显示带有年份的电影:1111,我该怎么做?
import React, { useState, ChangeEvent } from 'react';
import {
TextField,
InputAdornment
} from "@material-ui/core";
import Autocomplete from '@material-ui/lab/Autocomplete';
import { Search } from "@material-ui/icons";
import axios from "axios";
const AddressSearch = (props) => {
const [addressesList, setAddressesList] = useState([]);
const [inputAddress, setInputAddress] = useState<string>("");
const handleAddressChange = (event: ChangeEvent<{ value: unknown }>) => {
setInputAddress(event.target.value as string);
};
const topFilms = [
{ title: 'I HATE MOVIES', year: 1111 },
{ title: 'The Shawshank Redemption', year: 1994 },
{ title: 'The Godfather'},
{ title: 'The Godfather: Part II', year: 1974 }
]
return (
<div>
<Autocomplete
id="address-autocomplete"
freeSolo
options={topFilms}
getOptionLabel={(option) => option.title}
popupIcon={<Search />}
renderInput={(params) => <TextField
id="address-input"
{...params}
onChange={handleAddressChange}
placeholder="Quickly find your address"
InputProps={{ ...params.InputProps,
startAdornment: (
<InputAdornment position="start"><Search /></InputAdornment>
)}}
/> }
/>
</div>
);
}
export default AddressSearch;
注意:我正在使用的网站使用的是 Material-UI v 4.12
【问题讨论】:
标签: javascript reactjs autocomplete material-ui