【发布时间】:2023-04-01 18:06:06
【问题描述】:
我最近看到我的一个项目弹出一个警告,说 React.createClass 现在已被弃用,因此我正在检查一些代码以使其与新建议兼容。
我遇到的一件事是我的一个函数似乎不像以前那样触发了。
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();
我不知道为什么,但我认为这可能与此有关
更新
以下所有答案都是正确的,我标记为已接受的答案对我来说似乎最清楚,但感谢大家的帮助
【问题讨论】:
-
this.testFunc() 是调用函数的正确方法。 this.testFunc 只是对函数的引用。 () => this.testFunc() 正在定义一个新函数。
标签: javascript jquery node.js reactjs