Если вы хотите сделать это по-своему, вот оно:
this.state = {
tableHead: ["", "Name", "Age", "School", "Points"],
tableTitle: (() => {
const leaders = [];
for (let i = 0; i < this.numLeaders; i++) {
leaders.push(i);
}
return leaders;
})(),
};
}
Рабочий пример.
const state = {
tableTitle: (() => {
const leaders = [];
for (let i = 0; i < 10; i++) {
leaders.push(i);
}
return leaders;
})(),
};
console.log(state.tableTitle);
Я пропустил часть аргумента здесь, так как вы уже можете достичь numleaders
.Зачем вам нужен аргумент?
Кроме того, я использовал функцию стрелки выше, чтобы избежать привязки this
.Если вы придерживаетесь своей версии, не забудьте привязать ее:
this.state = {
tableHead: ["", "Name", "Age", "School", "Points"],
tableTitle: function () {
const leaders = [];
for (let i = 0; i < this.numLeaders; i++) {
leaders.push(i);
}
return leaders;
}.bind(this)(),
};
Или, если вы действительно хотите придерживаться своей оригинально-оригинальной версии :), вы можете попробовать это:
this.state = {
tableTitle: (function (numLeaders) {
const leaders = [];
for (let i = 0; i < numLeaders; i++) {
leaders.push(i);
}
return leaders;
}(this.numLeaders)),
};
Вы передаете аргумент, а затем возвращаете его.Нет необходимости связывать this
здесь, так как вы не используете this.numLeaders
в своей функции.
Вот альтернатива с некоторыми расширенными синтаксисами и клавиш .
this.state = {
tableHead: ["", "Name", "Age", "School", "Points"],
tableTitle: [...Array(this.numLeaders).keys()],
};
Рабочий пример:
const state = {
tableTitle: [...Array(10).keys()],
};
console.log(state.tableTitle);
Но, если эти данные не являются динамическими, возможно, state
не является подходящим местом для этого.