Я использую VueJS для создания достаточно простой игры/интерфейса управления ресурсами. В тот момент я хочу активировать функцию roll
каждые 12,5 секунд и использовать результат в другой функции. На данный момент, хотя я получаю следующее сообщение об ошибке:VueJS, обращаясь к методу из другого метода
Uncaught TypeError: Cannot read property 'roll' of undefined(...)
Я пробовал:
app.methods.roll(6);
app.methods.roll.roll(6);
roll.roll()
roll()
, но не может получить доступ к функции. Какие-нибудь идеи, как я могу это достичь?
methods: {
// Push responses to inbox.
say: function say(responseText) {
console.log(responseText);
var pushText = responseText;
this.inbox.push({ text: pushText });
},
// Roll for events
roll: function roll(upper) {
var randomNumber = Math.floor(Math.random() * 6 * upper) + 1;
console.log(randomNumber);
return randomNumber;
},
// Initiates passage of time and rolls counters every 5 time units.
count: function count() {
function counting() {
app.town.date += 1;
app.gameState.roll += 0.2;
if (app.gameState.roll === 1) {
var result = app.methods.roll(6);
app.gameState.roll === 0;
return result;
}
}
setInterval(counting, 2500);
...
// Activates the roll at times.
}
}
Где вы пытаетесь получить доступ метод «roll»? Он внутри одного и того же компонента? В дочернем компоненте? Родительский компонент? Родной? Или какое-то другое место со сложными отношениями? – wing
В настоящий момент нет компонентов. Я активирую метод подсчета при загрузке страницы, а внутри метода подсчета я ищу активировать метод roll. Вызов внутри оператора if в функции counting(). Все в данный момент находится в корневом пространстве. Будет рефакторинг компонентов, как только у меня будет закончена функция barebone. – Jackanapes