簡體   English   中英

將 onclick 函數分享給按鈕組件 React JS

[英]Share onclick function to button components React JS

我需要制作一個通用按鈕,在其中將某些屬性作為參數傳遞。 這些屬性之一是必須在單擊事件時執行的函數。

function Boton(props: { name: React.ReactNode , funcion: React.ReactNode }) {
  return (<div className="center-div"><IonButton shape="round" onClick={props.funcion}> {props.name}</IonButton></div>);
}

但我得到的是:

JSX 屬性) onClick?: ((event: React.MouseEvent<HTMLIonButtonElement, MouseEvent>) => void) | 未定義類型 'ReactNode' 不能分配給類型 '((event: MouseEvent<HTMLIonButtonElement, MouseEvent>) => void) | 不明確的'。 類型 'null' 不能分配給類型 '((event: MouseEvent<HTMLIonButtonElement, MouseEvent>) => void) | undefined'.ts(2322) index.d.ts(1455, 9):預期的類型來自屬性 'onClick',它在類型 'IntrinsicAttributes & Pick<IonButton, “color” | 上聲明 “強” | “禁用” | “尺寸” | “填充” | “模式”

但我不想要鼠標事件,因為它將成為一個移動應用程序。

看起來你給你的函數參數提供了React.ReactNode類型。 你應該給它一個函數類型。

也許是這樣的:( () => void

另外,我猜你的 name 參數應該是一個String

通用按鈕的“功能”道具不應該是 React.ReactNode。

我在這里使用箭頭函數,

const Button = (props: { name: React.ReactNode, onClick: Function}) => 
   (<div className="center-div">
     <IonButton shape="round" onClick={props.onClick}> 
      {props.name}
    </IonButton>
 </div>);

無論您在哪里定義通用按鈕,都要定義名稱和 onClick 道具。

希望上面的代碼能解決你的問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM