我使用创建一个电报机器人telegraf使用向导。我想在我的机器人中有几个向导。如何进入另一个场景?我正在使用以下代码,但出现错误Cannot read property 'enter' of undefined。
const Stage = require("telegraf/stage");
const WizardScene = require("telegraf/scenes/wizard");
const wiz1 = new WizardScene('task1',
    ctx => {...},
    ctx => {...}
);
const wiz2 = new WizardScene('task2',
    ctx => {...},
    ctx => {...}
);
const wiz3 = new WizardScene('task3',
    ctx => {...},
    ctx => {...}
);
const stage =new Stage([wiz1,wiz2,wiz3],{default: 'task1'})
bot.hears('anAction', (ctx) => {Stage.enter('wiz2')}); // this does not work
Run Code Online (Sandbox Code Playgroud)
    这是一个迟到的回应,但它可能对某人有所帮助。您需要注册之后 const stage = new Stage ...和之前的阶段的中间件 bot.hears...
bot.use(stage.middleware())
Run Code Online (Sandbox Code Playgroud)
您也可以使用它们的 id 而不是变量名称进入场景。所以代替Stage.enter('wiz2')使用Stage.enter('task2')进入wizard2。
|   归档时间:  |  
           
  |  
        
|   查看次数:  |  
           1680 次  |  
        
|   最近记录:  |