gpt4 book ai didi

javascript - 数组中的函数引用

转载 作者:行者123 更新时间:2023-11-28 00:13:11 26 4
gpt4 key购买 nike

我尝试在数组中定义一些步骤(我称之为页面),每个页面都应该有可能在输入时调用函数。

我的页面定义位于页面数组中,nextHandler(自定义方法)设置当前页面索引并尝试调用定义的函数。我的 React 类看起来(缩写)像这样:

var App = React.createClass({
pageDefinitions: [
{
title: "Page 1",
enterFunction: this.enterPageOne
}
],

enterPageOne: function() {
console.log("Something useful here");
},

nextHandler: function() {
var st = this.getState();
st.currentPageIndex = st.currentPageIndex + 1;
this.setState(st);
var page = this.pageDefinitions[this.state.currentPageIndex];
console.log(typeof page.enterFunction);
console.log(page.title);
if ( typeof page.enterFunction === "function") {
page.enterFunction();
}
},

getInitialState: function() {
return {
currentPageIndex = -1
};
},

render: function() {
return (
<div>Left out</div>
}
});

虽然 title 在控制台上正确打印出来,但该函数始终未定义。如何在数组中提供函数引用?

编辑:正如@gillesc和@justin-morgan指出的那样,这是一个范围问题(这是pageDefinition,而不是类)

编辑2:找到解决方案,我将pageDefinitions更改为getPageDefinitions(),如下所示:

getPageDefinitions: funtion() {
var self = this;
return [
{
title: "Page 1",
enterFunction: selfenterPageOne
}
];
}

最佳答案

this.enterPageOne 未定义,因为 this 并未绑定(bind)到您认为的内容。试试这个:

var enterPageOne = function() {
console.log("Something useful here");
};

var App = React.createClass({
pageDefinitions: [
{
title: "Page 1",
enterFunction: enterPageOne
}
],
//...etc.

关于javascript - 数组中的函数引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30693665/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com