Выдает ошибку когда нажать Button ("USD-UAH») после нее Button ("EUR-UAH»)
показывает ошибку
TypeError:Cannot read property'text' of undefined
at ctx (F:\project\telegram_bot\app.js:111:45)
at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:45:39)
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
at F:\project\telegram_bot\node_modules\telegraf\composer.js:120:56
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:37:16)
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at F:\project\telegram_bot\node_modules\telegraf\composer.js:337:14Failed to process updates.TypeError:Cannot read property'text' of undefined
at ctx (F:\project\telegram_bot\app.js:111:45)
at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:45:39)
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
at F:\project\telegram_bot\node_modules\telegraf\composer.js:120:56
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at Promise.resolve.handler (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:49)
at compose (F:\project\telegram_bot\node_modules\telegraf\scenes\wizard\index.js:37:16)
at execute (F:\project\telegram_bot\node_modules\telegraf\composer.js:352:13)
at F:\project\telegram_bot\node_modules\telegraf\composer.js:337:14
мои файлы:
app.js
constTelegraf=require("telegraf");const token ="TOKEN";const session =require("telegraf/session");constStage=require("telegraf/stage");constMarkup=require("telegraf/markup");constWizardScene=require("telegraf/scenes/wizard");constComposer=require("telegraf/composer");const bot =newTelegraf(token);const getApi =require("./api");
bot.start(ctx =>{
ctx.reply(`Hello ${ctx.from.first_name}. Сhoose one of the commands`,Markup.inlineKeyboard([Markup.callbackButton("Curse","curse"),Markup.callbackButton("Convert","convert")]).extra());});
bot.command("help", ctx => ctx.reply("
Answer 1
Дело в том, что ctx.message есть только у текстовых сообщений, для экшенов вроде бы используется ctx.callbackQuery. Чтобы узнать тип полученного сообщения можно посмотреть ctx.updateType. Если нужно получить "контент сообщения, каким бы оно ни было", то можно ctx[ctx.updateType].
А вообще вот документация, квадратными скобками обозначены опциональные поля.