【发布时间】:2021-01-17 17:34:00
【问题描述】:
我应该如何键入作为属性传递给我的 React 组件的异步函数?
我的组件定义如下。具体来说,我不知道如何在我的界面中键入 addTask 属性:
interface INewTaskEntryProps {
addTask:any; // this
}
class NewTaskEntry extends React.Component<INewTaskEntryProps> {
...
render() {
return (
...
<button onClick={(e) => this.props.addTask(e)}>Do Something</button>
...
);
}
}
我的异步函数是这样定义的:
const addTask = async (e) => {
...
try {
const newID = await mongoTaskCollection.insertOne({
...
});
}
...
}
最后我将异步函数传递给我的组件,如下所示:
<NewTaskEntry addTask={addTask} />
【问题讨论】:
-
(e: EventType) => Promise<void> -
在最新的 React 版本中,我知道它的
const addTask = async (e: React.MouseEvent<HTMLButtonElement, MouseEvent>) => ...。不确定您的旧版本。 -
@SILENT 对于创建回调是正确的,但他试图独立于创建一个值来指定此类值的类型。
标签: reactjs typescript