![](/img/trans.png)
[英]Property 'onClick' does not exist on type 'IntrinsicAttributes & MapContainerProps'
[英]How to solve Type Property '' does not exist on type 'IntrinsicAttributes & Function'?
我有一个像这样的父组件
import filterComponent from 'filter/filterComponent'
const reloadHandler = useCallback(
(event: MouseEvent) => {
event.preventDefault();
// my logic
},
[Reload, Fetching]
);
const parent = () => {
return (
<filterComponent reload={reloadHandler} />
)
}
过滤器组件:
export const filterComponent = (filter: Function, reload: Function) => {
return (
<Button onClick={reload} />
)
}
错误:
输入'{重新加载:(e:MouseEvent)=> void; }' 不可分配给类型 'IntrinsicAttributes & Function'。 “IntrinsicAttributes & Function”类型上不存在属性“reload”
我该如何解决这个问题?
我认为它抱怨您访问 FilterComponent 中的属性的方式。 试试这个版本:
type FilterComponentProps = {
reload: (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => void,
};
export const FilterComponent = (props: FilterComponentProps) => {
return <button onClick={props.reload} />;
}
然后是调用它的组件:
function SomeComponent() {
const reloadHandler = React.useCallback(
(event: React.MouseEvent) => {
event.preventDefault();
// my logic
},
// I've removed dependencies as I'm not sure where you take them from
[]
);
return (
<FilterComponent reload={reloadHandler} />
)
}
另请注意,我已将filterComponent
更改为FilterComponent
,因为小写组件名称空间是为 HTML 基元保留的
我还为您编写了一个 CodeSandbox(以防万一): https ://codesandbox.io/s/react-typescript-3i7cm
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.