J'utilise VueJS pour créer un jeu/interface de gestion des ressources assez simple. Pour l'instant, je cherche à activer la fonction roll
toutes les 12,5 secondes et utiliser le résultat dans une autre fonction. Pour l'instant, je continue à obtenir l'erreur suivante :
Erreur de Type Non Rattrapée : Impossible de lire la propriété 'roll' de undefined(...)
J'ai essayé :
app.methods.roll(6);
app.methods.roll.roll(6);
roll.roll()
roll()
mais je ne parviens pas à accéder à la fonction. Quelqu'un a-t-il une idée de la façon dont je pourrais y parvenir ?
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.
}
}
0 votes
Où essayez-vous d'accéder au
roll
? Est-ce à l'intérieur du même composant ? Dans un composant enfant ? Dans un composant parent ? Un frère ou une sœur ? Ou à un autre endroit avec une relation compliquée ?0 votes
Pas du tout de composants pour le moment. J'active la méthode de comptage au chargement de la page, et à l'intérieur de la méthode de comptage, je cherche à activer la méthode de roulement. L'appel se fait dans l'instruction if de la fonction counting(). Pour l'instant, tout se trouve dans la portée Root. Je vais refactorer vers les composants une fois que j'aurai terminé la fonctionnalité de base.