【发布时间】:2020-10-01 06:58:30
【问题描述】:
我已经安装了材料 ui,我从 jsonplaceholder 获得了自动完成选项,它工作得很好,这是我的代码:
const [ value, setValue ] = useState([]);
const [ inputValue, setInputValue ] = useState('');
useEffect(() => {
axios
.get('https://jsonplaceholder.typicode.com/posts')
.then((res) => {
setValue(res.data);
})
.catch((e) => {
console.log('error happened');
});
}, []);
<Autocomplete
id="combo-box-demo"
options={value}
getOptionLabel={(option) => option.title}
style={{ width: 300 }}
inputValue={inputValue}
onInputChange={(event, newInputValue) => {
setInputValue(newInputValue);
}}
onSubmit={() => console.log('hey')}
renderInput={(params) => (
<TextField
onSubmit={() => console.log('hh')}
{...params}
label="Combo box" variant="outlined" />
现在我想要实现的是当用户选择一个选项时,我想控制台记录一些东西。 我确实在 Textfield 上尝试过 onSubmit,但它不起作用。
当用户从自动完成中选择一个选项或在文本字段上按 Enter 时,我如何控制日志?
【问题讨论】:
-
你试过
onChange方法prop吗? -
@GhassenLouhaichi 是正确的。
onChange是你想要的。在Autocomplete组件(而不是TextField)上设置onChange将在用户选择新项目以完成时进行更改。 -
向 Textfield 组件提供
onChange将导致它在每次用户键入时执行,而将其提供给 Autocomplete 组件将在用户选择选项时触发。不过我不确定 Enter 键。 -
@GhassenLouhaichi,如果用户使用键盘选择了新选项并点击“回车”,它仍应触发该事件。
-
@GhassenLouhaichi 感谢自动完成中的 onChange 编码工作正常再次感谢。
标签: reactjs forms material-ui