我想以这种方式将自定义输入支持者传递给另一个支持者:
<FormTextField
name="startTime"
label="startTime"
type="time"
error={!!errors.startTime}
CustomTextField={TextFieldColorTimeIcon} <-- custom TextField
...
/>
FormTextField 的代码:
export default function FormTextField({ name, CustomTextField, ...other }) {
const { control } = useFormContext();
let LocalCustomTextField = CustomTextField ? CustomTextField : TextField;
return (
<Controller
name={name}
control={control}
render={
({ field, fieldState: { error } }) => (<LocalCustomTextField {...field} fullWidth error={!!error} helperText={error?.message} {...other} />)
}
/>
);
}
TextFieldColorIcon 的代码:
export function TextFieldColorIcon({ sx, ...other }: TextFieldColorIconProps) {
return <TextField
sx={{
...sx,
'& input[type="time"]::-webkit-calendar-picker-indicator': {
filter:
'invert(41%) sepia(24%) saturate(301%) hue-rotate(166deg) brightness(101%) contrast(89%)',
},
}}
{...other} />
}
但我有警告:
警告:不能给函数支持者提供参考。尝试访问此 ref 将失败。你的意思是使用 React.forwardRef() 吗?检查Controller
. 在 TextFieldColorIcon 在 Controller 在 FormTextField 在 div
尽管没有通过参考。此警告的原因是什么,我是否以正确的方式传递自定义 TextFieldColorIcon?