Pau*_*aul 3 javascript autocomplete reactjs material-ui
我希望我可以使用材料 ui 的自动完成功能来做这样的事情:wertarbyte
也就是说,在没有必须从中选择的元素列表的情况下插入文本(字符串)。
因此不应该出现 noOptions 消息,每次在键盘上按下 Enter 键时都会插入文本。
链接:代码沙盒
代码:
import React from "react";
import Chip from "@material-ui/core/Chip";
import Autocomplete from "@material-ui/lab/Autocomplete";
import { makeStyles } from "@material-ui/core/styles";
import TextField from "@material-ui/core/TextField";
const useStyles = makeStyles(theme => ({
root: {
width: 500,
"& > * + *": {
marginTop: theme.spacing(3)
}
}
}));
export default function Tags() {
const classes = useStyles();
return (
<div className={classes.root}>
<Autocomplete
multiple
id="tags-outlined"
options={[]}
defaultValue={["foo", "bar"]}
//getOptionLabel={(option) => option}
//defaultValue={[top100Films[13]]}
//filterSelectedOptions
renderInput={params => (
<TextField
{...params}
variant="outlined"
label="filterSelectedOptions"
placeholder="Favorites"
/>
)}
/>
</div>
);
}
Run Code Online (Sandbox Code Playgroud)
如果您有简单的元素(不是对象,只是字符串),而你并不真的需要处理状态(您自动完成不被控制)可以使用freeSolo的道具Autocomplete。
<Autocomplete
multiple
freeSolo
id="tags-outlined"
options={["foo", "bar"]}
defaultValue={["foo", "bar"]}
renderInput={params => (
<TextField
{...params}
variant="outlined"
label="filterSelectedOptions"
placeholder="Favorites"
/>
)}
/>
Run Code Online (Sandbox Code Playgroud)
如果您的元素更复杂并且您确实需要控制该元素:
确保自动完成标记是一个受控标记(您设法重视)。
收听 TextField 上的按键按下事件。
如果键是enter( keyCode === 13) - 获取输入的值并将其推送到您拥有的当前值列表中。
确保您还处理onChange处理元素的删除:
这是代码:
const [autoCompleteValue, setAutoCompleteValue] = useState(["foo", "bar"]);
return (
<Autocomplete
multiple
id="tags-outlined"
options={[]}
value={autoCompleteValue}
onChange={(e, newval, reason) => {
setAutoCompleteValue(newval);
}}
renderInput={params => (
<TextField
{...params}
variant="outlined"
label="filterSelectedOptions"
placeholder="Favorites"
onKeyDown={e => {
if (e.keyCode === 13 && e.target.value) {
setAutoCompleteValue(autoCompleteValue.concat(e.target.value));
}
}}
/>
)}
/>
);
Run Code Online (Sandbox Code Playgroud)
检查两个选项的实时工作示例:https : //codesandbox.io/s/mui-autocomplete-create-options-on-enter-gw1jc
| 归档时间: |
|
| 查看次数: |
6628 次 |
| 最近记录: |