自动完成材料 ui 中的自定义输入不起作用
IT技术
reactjs
autocomplete
material-ui
react-component
2021-05-11 19:07:01
2个回答
为了添加新项目,Autocomplete
您应该使用Autocomplete
. 此功能使您可以选择自动使用输入中的值并将其添加到Autocomplete
.
freeSolo 的问题是当您有复杂的对象(而不仅仅是字符串)时。
有多种方法可以解决这个问题。
选项 #1 - 如果复杂对象只是预先存在的值,您可以使用它来显示正确的值:
<Autocomplete
freeSolo
getOptionLabel={option => option.title || option}
...
/>
如果你没有option.title
(这是默认的 freeSolo 的情况,因为值只是文本,而不是对象) - 只需显示option
.
你可以在这里找到一个工作示例:https : //codesandbox.io/s/mui-autocomplete-create-complex-4mk5v?file=/demo.js
选项#2 - 如果您确实需要复杂的对象:
您需要自己管理添加/删除对象。
的onChange
propAutocomplete
获取一个可以用于此的函数。
freeSolo 允许您自由输入,但不允许您将值注册为选项(https://material-ui.com/api/autocomplete/查找“自动选择”)。这是解决方案:
<Autocomplete
options={options}
freeSolo
autoSelect