按钮通过Onclick事件

时间:2018-01-16 09:55:25

标签: javascript typescript events button mouseevent

我有一个带有onClick属性的button.tsx。

import * as React from 'react';
interface Props {
 className?: string;
 text: string;
 onClick?(event: React.MouseEvent<HTMLButtonElement>): void;
 type?: string;
}
const submitButton = (event: React.MouseEvent<HTMLButtonElement> , props: 
Props) => {
 event.preventDefault();
 props.onClick(event);
};
export const ButtonComponent = (props: Props) => {
 return (
  <button
   className={props.className}
   type={props.type}
   onClick={submitButton(event, props)}
  >
  {props.text}
 </button>
 );
};

如何将事件传递给submitButton函数?

现在我有这个错误:

类型&#39;事件&#39;的争论不能分配给类型的参数 &#39;的MouseEvent&#39 ;. 物业&#39; altKey&#39;类型&#39;事件&#39;

中缺少

1 个答案:

答案 0 :(得分:0)

您在渲染过程中立即调用submitButton而不是将函数作为处理程序传递,因此事件不存在且您没有传递任何内容(submitButton的返回类型为onClick)

作为函数传递给onClick而不是

<button className={props.className}
        type={props.type}
        onClick={event => submitButton(event, props)}>
  {props.text}
</button>