簡體   English   中英

反應組件功能不起作用onClick按鈕

[英]React Component Function not working onClick button

組件

constructor(props) {
   super(props);
   this.fuelD = props.fuelD; //array of objects
   this.state={
     averageFuelConsumption:0,
   }
}

自定義功能

calcAverage = () => {
  console.log("something")
}

按鈕

<button onClick={()=>this.calcAverage)}>Click</button>

單擊按鈕..解決控制台中的任何問題...如果我這樣做..

<button onClick={()=>console.log("something")}>Click</button>

我在函數上嘗試了bind(this)

1.在constructor() -不起作用

2.在onClick -不起作用

將您的按鈕更改為

<button onClick={this.calcAverage}>Click</button>

要么

<button onClick={() => this.calcAverage()}>Click</button>

當前,您的onClick處理程序僅返回對this.calcAverage的引用,而不是實際調用它。

您在onClick={()=>this.calcAverage)}有一個簡單的語法錯誤。 請注意不平衡的結束括號)

您可能想要的是onClick={() => this.calcAlverage()}

有兩種解決方法:

解決方案1

<button onClick={() => this.calcAverage()}>Click</button>

您錯過了代碼中的()

您是否需要event (例如如果需要event.stopPropagation() ):

<button onClick={(event) => this.calcAverage(event)}>Click</button>

解決方案2

<button onClick={this.calcAverage}>Click</button>

推薦使用此方法,因為使用箭頭功能綁定事件( 如解決方案1所示 )可能會在將來導致性能問題。 每次渲染組件時,它都會一次又一次地創建相同的事件。

更換:

<button onClick={()=>this.calcAverage)}>Click</button>

<button onClick={this.calcAverage)}>Click</button>

在前者中,您將在匿名函數中返回函數的引用,而不是調用它。

暫無
暫無

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

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