如何解决Material Autocomplete - auto selecting an option when options change.反应
我正在尝试让 Material Autocomplete 自动选择我最初加载的选项,但遇到了一些问题。我对 React 非常陌生,所以可能在做一些根本性的错误,但我的代码基本上就是这样做的。
export default function AsyncPicker({name,formik,initialOptions = []}) {
const [options,setoptions] = useState(initialOptions);
useEffect(() => {
setoptions(initialOptions);
},[initialOptions])
return (
<Autocomplete
....otherProps
options={options}
value={{id:formik.values[name]}}
getoptionSelected={(option,value) => option.id === value.id}
/>
)
}
选项在键入时异步加载,但对于初始选项,我想根据记录的值加载单个选项。 从父组件,我正在渲染 Autocomplete,它最初为它的 initialOptions 获取一个默认的空数组。当为给定记录异步加载数据时,initialOptions 会更新以反映加载的记录的值。子控件中的选项会更新并呈现选项,但不会自动选择。
getoptionSelected 会在 initialOptions 被更新并且选项和值的 id 匹配时触发,那么为什么它没有被选中?
正如我所说,很高兴被告知我做错了,因为两周前从未写过一行反应。
解决方法
return (
<Autocomplete
....otherProps
options={options}
value={{id:formik.values[name]}}
getOptionSelected={(option,value) => formik.setFieldValue(option.id === value.id)}
/>
)
像这个答案一样将 onChange 函数绑定到 formik 的 setFieldValue 函数?
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。