在我的React应用程序中,我有一个可以从下拉列表中取值的输入,为此我使用了material-ui自动完成和TextField组件。
**问题:**如何通过单击按钮而不从下拉列表中选择来以编程方式设置输入值?例如,我想从示例中设置“教父”,该值应该在输入中可见。
import React from "react";
import Autocomplete from "@material-ui/lab/Autocomplete";
import { TextField, Button } from "@material-ui/core";
export default function ComboBox() {
const handleClick = () => {
// set value in TextField from dropdown list
};
return (
<React.Fragment>
<Autocomplete
options={top100Films}
getOptionLabel={option => option.title}
style={{ width: 300 }}
renderInput={params => (
<TextField
{...params}
label="Combo box"
variant="outlined"
fullWidth
/>
)}
/>
<Button onClick={handleClick}>Set value</Button>
</React.Fragment>
);
}
// Top 100 films as rated by IMDb users. http://www.imdb.com/chart/top
const top100Films = [
{ title: "The Shawshank Redemption", year: 1994 },
{ title: "The Godfather", year: 1972 },
{ title: "The Godfather: Part II", year: 1974 },
{ title: "The Dark Knight", year: 2008 }
];
5条答案
按热度按时间rwqw0loc1#
可以将所需值存储在state中并将其传递给自动完成组件。
导入使用状态:
使用useState:
单击按钮时更改值
并将此值传递给呈现中组件
watbbzwu2#
如果要在输入中显示默认的选定值,还必须设置Autocompelete组件的inputValue属性和onInputChange事件
状态变化:
手柄点击变化
自动完成中的更改
vfh0ocws3#
没有人给出正确答案...
cyej8jka4#
如果您在这里尝试测试从MUI的
Autocomplete
组件调用的更改处理程序:在setupTests.js文件中
在测试文件中:
有关更多示例,请查看tests in the library
fcipmucu5#
如果下拉菜单中没有该选项,则会添加新选项