React 传递函数作为 prop

Posted

技术标签:

【中文标题】React 传递函数作为 prop【英文标题】:React passing function as prop 【发布时间】:2021-05-11 10:20:16 【问题描述】:

我正在使用 typescript/react,并且我从基于类的组件 A 中获得了此功能:

    listUpdateFunction() 
        console.log("called update functions")
        this.setState( shouldUpdate: true );
    

我将其作为道具传递给另一个组件 B。并将其用作提交按钮。

<button type="submit" onClick=this.props.listUpdateFunction>Submit!</button>

我的 B 类道具接口是:

interface IProps 
    listUpdateFunction: Function;

我打算使用此函数在 A 类中调用 componentDidUpdate。但是我的代码无法编译为它所说的 B 类

(JSX 属性) React.DOMAttributes.onClick?: ((event: React.MouseEvent) => void) |未定义

我不明白,阅读此错误消息我认为该函数可能未定义,但我认为该接口会保证它不为空?

【问题讨论】:

【参考方案1】:

尝试更新你的界面

interface IProps 
    listUpdateFunction: (event: React.MouseEvent<htmlButtonElement>) => void;

【讨论】:

以上是关于React 传递函数作为 prop的主要内容,如果未能解决你的问题,请参考以下文章

TypeScript 和 React:在 props 中传递组件并从函数中返回它

测试 React 组件方法正在调用函数传递作为道具

我啥时候需要使用 super(props) 将 prop 传递给 react 组件的构造函数? [复制]

将回调函数作为道具传递给孩子

试图将我的数组(props)作为选择器传递给我的发布函数

React 函数组件传递ref