gpt4 book ai didi

reactjs - 如何将函数从父组件传递给类型为 assingable 的子组件

转载 作者:行者123 更新时间:2023-12-04 14:49:34 24 4
gpt4 key购买 nike

我是 TypeScript 的新手,我想传递我的函数 onDogSelected到子组件 <Dogs /> .

当我尝试时,我收到了这样的错误消息:

Type '{ onDogSelected: (e: any) => void; }' is not assignable to type 'IntrinsicAttributes & { children?: ReactNode; }'.Property 'onDogSelected' does not exist on type 'IntrinsicAttributes & { children?: ReactNode; }'.

我不知道这是什么意思。我试图弄清楚,但仍然没有解决方案。

const HomePage: React.FC = () => {
const [dogSelected, setDogSelected] = useState("");
const onDogSelected = (e: any) => {
setDogSelected(e.target.value)
}
return (
<ApolloProvider client={client2}>
<Dogs onDogSelected={onDogSelected} />
{dogSelected && <span>{dogSelected}</span>}
</ApolloProvider>
);
};

export default HomePage;

最佳答案

React.FC 已弃用,您应该使用 React.FunctionComponent

React.FunctionComponent 是一个通用类型。如果您不再期待,您应该将组件的 props 传递给它。

所以 Dogs 组件应该是这样的,

import { FunctionComponent } from "react";

const Dogs: FunctionComponent<DogsProps> = (props) => {
...
};

interface DogsProps {
onDogSelected(e: any): void;
}

您不必创建接口(interface)或类型,只需将其作为参数传递即可

const Dogs: FunctionComponent<{ onDogSelected(e: any): void; }> = (props) => {

关于reactjs - 如何将函数从父组件传递给类型为 assingable 的子组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69277275/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com