superWizard.action("redo", (ctx) => {
ctx.reply("Restarting Session!");
ctx.session = {};
ctx.scene.leave();
ctx.scene.enter("super-wizard");
});
那么我们怎样才能重新启动向导场景呢?
我也尝试过下面的代码
return ctx.wizard.selectStep(0);
这仍然不起作用,下面是我的完整代码。
const superWizard = new Scenes.WizardScene(
"super-wizard",
(ctx) => {
...
return ctx.wizard.next();
},
(ctx) => {
...
return ctx.wizard.next();
},
(ctx) => {
...
return ctx.wizard.next();
},
(ctx) => {
bot.telegram.sendMessage(ctx.chat.id, `Perform Action`, {
reply_markup: {
inline_keyboard: [
[
{ text: "Confirm & Send!", callback_data: "confirm" },
{ text: "Redo!", callback_data: "redo" },
{ text: "Stop!", callback_data: "stop" },
],
],
},
});
}
}
);
superWizard.action("redo", (ctx) => {
ctx.reply("Restarting Session!");
ctx.session = {};
ctx.wizard.selectStep(0);
});
请提供一些帮助。
你可以尝试做
ctx.scene.reenter()
代替
ctx.wizard.selectStep(0)