当前位置: 首页 > 知识库问答 >
问题:

如何使用TypeScript指定React组件回调的函数参数?

暴阳州
2023-03-14

我在TypeScript中有一个React组件,看起来像这样:

interface FooDetails {
    name: string
    latitude: number,
    longitude: number,
}

interface FooSelectorProps {
    onDetailsChanged: Function,
}

class FooSelector extends React.Component<FooSelectorProps, any> {
    constructor(props: FooSelectorProps, context) {
        super(props, context);
    }

    onTravelTypeChange(event) {
        this.setState({ travelType: event.target.value });
    }

    onDetailsChange(fooData) {
        this.props.onDetailsChanged({
            name: fooData.name,
            latitude: fooData.latitude,
            longitude: fooData.longitude,
        });
    }

    render() {
            return <div>...Foo selection UI...</div>
    }
}

我希望能够指定我的propTypes(FooSelectorProps)中的onDetailsChanged函数使用FooDetails对象,但我不知道怎么做。

共有1个答案

孟嘉歆
2023-03-14

您可以将类型改为写入,而不是将全局类型函数用于onDetailsChanged的类型,因此将FooSelectorProps更改为:

interface FooSelectorProps {
    onDetailsChanged: ((details: FooDetails) => void)
}

然后,您将得到onDetailsChanged回调的类型检查。

 类似资料:
  • 我是React的新手,我的第一个项目涉及创建一个包含日期选择器(使用React Datepicker)的表单(使用react-Hook-form创建)。到目前为止,一切正常,除了我的日期选择器,当单击时,它不会用新选择的日期更新表单字段。 该项目的结构如下: FormDate。js 我已经按照react hook form Controller文档使用了控制器组件,因为我最终需要使用条件逻辑,并且

  • 问题与此非常相似,但我的问题集中在默认函数上。(我是前端新手,如果有更正式的名称,请告诉我) 这是代码(我使用的是TypeScript 2.5): 然后,当我尝试渲染这个组件时: 我得到了这个错误; TS2322:类型{}不能赋值给类型Intrinsic属性 类型{}中缺少属性Hello。 我如何解决这个问题?

  • 在本教程中,他们将一个回调函数从父组件传递到子组件,并从子组件传递到子组件。我的问题是如何设置参数?我的猜测是,起点是在组件中调用。从那以后,我就不知道是如何进入的了。它是否存储在“on click方块板”中?

  • 相对来说,我是一个与Java智能合约交互的新手,在尝试检索智能合约函数返回的tuple[]时遇到了一个问题。这是我想调用的函数的ABI定义: 以下是智能合约代码的链接:https://polygonscan . com/address/0x 920 f 22 E1 e 5 da 04504 b 765 f 8110 ab 96 a 20 e 6408 BD # code 下面是我编写的调用该函数的

  • 问题内容: 我有一个内部进行一些修改的函数,它返回一个值。 最初的想法是做这样的事情: 不幸的是,这不适用于Oracle。建议做这种事情的方法是什么? 有没有办法从我的陈述中提取声明的变量? 问题答案: Hibernate Session提供了一种直接访问的方法。然后,您可以创建并用于执行功能:

  • 这里有一个问题,我在React.js应用程序中有一个FormControl组件,我在其中呈现了几种不同类型的其他组件。例如,在下面的代码中,您可以看到我呈现了一个CheckBoxWithLabel。你会注意到我传递了一个函数 因此,在CheckBoxWithLabel组件(代码未显示)中,我可以使用onChange事件(react中复选框的内置事件)调用它 因此,结果是,当单击复选框时,会调用父组