我正在按照此链接来实施反应材料
Autocomplete
。
我使用
renderInput
的方式与文档中描述的方式相同
renderInput={(params: AutocompleteRenderInputParams) => (
<TextField
{...params}
placeholder="Sections"
label='Nil Sections'
/>
)}
但是我在
TextField
上收到此错误
Type '{ placeholder: string; label: string; id: string; disabled: boolean; fullWidth: boolean; size: "small" | undefined; InputLabelProps: Omit<HTMLAttributes<HTMLLabelElement>, "color">; InputProps: { ...; }; inputProps: InputHTMLAttributes<...> & { ...; }; }' is not assignable to type 'Omit<FilledTextFieldProps | OutlinedTextFieldProps | StandardTextFieldProps, "variant">'.
The types of 'InputLabelProps.children' are incompatible between these types.
Type 'ReactI18NextChildren | Iterable<ReactI18NextChildren>' is not assignable to type 'ReactNode'.
Type 'Record<string, unknown>' is not assignable to type 'ReactNode'.
Type 'Record<string, unknown>' is missing the following properties from type 'ReactPortal': children, type, props, key
完整错误是这样的
而且我确切地知道哪一行导致了它,这就是导致它的行,因为当我将其从
TextField
中删除时,错误消失了,但随后 Autocomplete
不起作用
{...params}
我不确定为什么它会导致任何问题,我按照原样遵循文档并且不更改任何内容。
我收到的错误是说它期望的类型不是它返回的类型,因为
AutocompleteRenderInputParams
,这些属性在渲染标签控件中不期望,但如果我们不提供这些属性,它甚至不起作用.
有线索吗?
终于找到解决办法了。
所以我尝试的是,而不是添加整个
params
,我开始逐一添加参数,直到此时它开始完美工作。
所以我从
params
替换了这些,现在它就像一个魅力
id={params.id}
inputProps={params.inputProps}
InputProps={params.InputProps}
通过这种方式,我还可以找出导致问题的确切参数,因此对于我的情况来说,这就是导致问题的参数
InputLabelProps={params.InputLabelProps}