2 votes

Comment appeler correctement un ComponentDialog à partir d'un autre ComponentDialog ?

Je me bats avec ça depuis un jour, je n'arrive pas à le faire fonctionner correctement. Je partagerais bien le code mais je pense que cela pourrait brouiller les pistes.

J'ai créé quelques ComponentDialogs qui sont nécessaires pour être inclus dans d'autres ComponentDialogs y compris le principal bot.js .

ComponentDialogA est importé dans le fichier principal bot.js qui est appelé correctement lorsque je fais un replaceDialog ou beginDialog. Mais lorsque j'essaie d'appeler ComponentDialogB de ComponentDialogA il retourne simplement au dernier point de ComponentDialogA et ne parvient pas à toucher ComponentDialogB .

Mes sous-questions sont donc les suivantes :

  1. Ai-je besoin d'un accesseur d'état personnalisé pour chaque ComponentDialog pour afin de faire ce que je veux réaliser ou est-ce seulement pour stocker des spécifiques liées à cette boîte de dialogue, par opposition à la position réelle de la boîte de dialogue.
  2. En rapport avec la première question, ai-je besoin d'un nouveau dialogSet par ComponentDialog pour gérer les ComponentDialogs enfants, pour utiliser this.dialogs.add au lieu de this.addDialog ?
  3. Est-ce que je suis juste un imbécile et que je me suis trompé dans mon code ? quelque part ?

Je vais essayer de simplifier mon code et de le partager plus tard.

Merci beaucoup,

2voto

Drew Marsh Points 22002

Premièrement, il y a actuellement une limitation dans v4.2.x version des bibliothèques qui empêchent ComponentDialog d'accéder à des boîtes de dialogue en dehors de lui-même dans cualquier manière. Cela signifie que les boîtes de dialogue à l'intérieur d'une ComponentDialog peuvent seulement commencer des dialogues qui sont frères et soeurs à l'intérieur de ce groupe. ComponentDialog et n'ont jamais accès au monde extérieur.

Sur 4.3.x Dans un délai de deux ans, il sera possible pour un ComponentDialog pour entamer un dialogue "vers le haut" de sa chaîne d'ascendance également . Cela signifie que, pour votre scénario, si les deux ComponentDialogA y ComponentDialogB ont été enregistrés dans le même parent DialogSet , ComponentDialogA serait être capable d'appeler beginDialog('ComponentDialogB' ...) et il le trouverait.

Pour être clair, cependant, vous ne serez toujours pas en mesure d'adresser des dialogues individuels au sein de ComponentDialog de l'extérieur. Ce qui signifie que si votre ComponentDialogB avait un SubDialogX à l'intérieur, quelque chose à l'extérieur, comme ComponentDialogA ne peut pas démarrer que le dialogue "intérieur" de manière explicite. Cela a-t-il un sens ?

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X