使用TypeScript将事件处理程序作为props发送到React组件中

时间:2017-08-18 00:06:30

标签: reactjs typescript

我有一个React组件的代码。声明传递给组件的两个onClick处理程序的正确方法是什么?

interface LoginFormProps {
    loginClicked: ???? <--- onClick handler signature
    cancelClicked: ???? <--- onClick handler signature
}

class LoginForm extends React.Component<LoginFormProps, {}> {
    render() {
        <form>
            <button onClick={loginClicked}>
                Login
            </button>
            <button onClick={cancelClicked}>
                Cancel
            </button>
        </form>
    }
}

1 个答案:

答案 0 :(得分:6)

我通常使用:

interface ILoginFormProps {
    loginClicked: (ev) => void;
    //
}

但是如果你想对你的打字非常严格:

interface ILoginFormProps {
    loginClicked: (ev: React.MouseEvent<HTMLButtonElement>) => void;
    //
}