Динамические кнопки inlineKeyboard (nodejs, telegraf) - PullRequest
0 голосов
/ 05 октября 2019

Мне нужно создать меню, используя inlineKeyboard из массива элемента «n», который может меняться в значении и количестве. Я работаю с Telegraf API, и вот как я создаю статический:

const bookMenu = Telegraf.Extra
  .markdown()
  .markup((m) => m.inlineKeyboard([[
     m.callbackButton('book1', 'book1'), 
     m.callbackButton("book2", "book2")], 
    [m.callbackButton("book3", "book3")]
 //.....
 //for n buttons
 //.....
]))

Как я могу это сделать? Я не смог сделать цикл for внутри разметки

1 Ответ

0 голосов
/ 05 октября 2019
await db.query(sql).then(async(result) =>{


        const bookMenu = Telegraf.Extra
          .markdown()
          .markup((m) => {

            let list = []

            let j = 0;
            async.each(result[0], ()=>{ 
              console.log(result[0][0].corso)
              list.push(m.callbackButton(result[0][j].corso, "callback"))
              j++
            })

            return m.inlineKeyboard(list)
        })

Возвращение m.inlineKeyboard со списком разыскиваемых решило проблему.

...