我最近在我的一個項目中看到一個警告彈出,說React.createClass現在已被棄用,所以我正在通過一些代碼來使它與新建議兼容。React.js函數沒有觸發
我遇到的一件事是,我的一個功能似乎並不像以前那樣開火。
class Example extends React.Component {
constructor() {
super();
this.state = { content: "Initialize" }
}
changeScreen(newScreen) {
// this fires
alert("fired 01");
// this function does not
this.testFunc;
var screen = "";
switch(newScreen) {
case "one":
screen = "var01";
break;
case "two":
screen = "var02";
break;
default:
screen = "failed";
break;
}
}
testFunc() {
alert("fired 02");
}
render() {
return (
<div>
<External.Element execChangeScreen={this.changeScreen} />
{this.state.content}
</div>
);
}
}
ReactDOM.render (
<Example />,
document.getElementById("app")
);
我似乎無法得到testFunc火,我已經打過電話一樣如下
this.testFunc();
this.testFunc;
() => this.testFunc();
我不知道爲什麼,但我認爲它可能有一些做這個
UPDATE
所有的答案波紋管是正確的,我標記爲接受了一個似乎最明確的給我,但由於everyon E對於他們的幫助
this.testFunc()是調用函數的正確方法。 this.testFunc只是對函數的引用。 ()=> this.testFunc()定義了一個新函數。 –