要防止Material UI的Autocomplete组件自动更改值,您可以使用onInputChange
事件来控制它
import React, { useState } from "react";
import TextField from "@mui/material/TextField";
import Autocomplete from "@mui/material/Autocomplete";
const options = ["Option 1", "Option 2", "Option 3"];
export default function App() {
const [inputValue, setInputValue] = useState("");
const [selectedValue, setSelectedValue] = useState(null);
const handleInputChange = (event, value) => {
setInputValue(value);
};
const handleChange = (event, value) => {
setSelectedValue(value);
};
return (
<Autocomplete
options={options}
inputValue={inputValue}
onInputChange={handleInputChange}
onChange={handleChange}
value={selectedValue}
renderInput={(params) => (
<TextField
{...params}
label="Choose an option"
variant="outlined"
/>
)}
/>
);
}
在此示例中,我们使用onInputChange
事件处理程序来控制输入值。当用户输入时,handleInputChange
函数会更新inputValue
状态,但不会更改selectedValue
状态。handleChange
函数仅在用户选择选项时更新selectedValue
。
这样,只有在用户明确选择了一个选项时,Autocomplete
组件的值才会更改,从而防止自动完成更改输入值。
领取专属 10元无门槛券
手把手带您无忧上云