无法使用 Aiogram python 更改状态



我需要更改回调处理的中的状态

@dp.callback_query_handler(text="ru", state=States.lang)
async def change_lang_ru(call: types.CallbackQuery, state: FSMContext):
global menu_keyboard
async with state.proxy() as data:
data['lang'] = 'ru'
await call.answer(text="Язык поменялся", show_alert=True)
print(States.all())
await States.menu.set()

实际上并没有出现错误,但下一个状态并没有启动

INFO:aiogram.contrib.middlewares.logging:Received callback query [ID:1631380781948190838] from user [ID:379835437] for message [ID:123] in chat [private:379835437] with data: ru originally posted by user [ID:5151482169]
INFO:aiogram.contrib.middlewares.logging:Unhandled callback query [ID:1631380781948190838] from user [ID:379835437] for message [ID:123] in chat [private:379835437] with data: ru originally posted by user [ID:5151482169]
INFO:aiogram.contrib.middlewares.logging:Process update [ID:41723130]: [success] (in 6 ms)

这就是我的下一个州应该如何启动

@dp.message_handler(state=States.menu)
async def first_test_state_case_met(message: types.Message):
await message.reply('First!', reply=False)

这些是我的州

class States(StatesGroup):
lang = State()
menu = State()

我在文件中找不到任何答案

在您的示例中,我在这里有一个错误:

print(States.all())
属性错误:类型对象"States"没有属性"all"
@dp.callback_query_handler(text="ru", state=States.lang)
async def change_lang_ru(call: types.CallbackQuery, state: FSMContext):
global menu_keyboard
async with state.proxy() as data:
data['lang'] = 'ru'
await call.answer(text="Язык поменялся", show_alert=True)
# print(States.all())
await States.menu.set()

除此之外,所有其他状态都有效,但在状态更改为菜单状态后:

await States.menu.set()

您应该发送消息,以便在下一个函数中查看响应,因为您的下一个功能是一个消息处理程序,因此它需要来自的消息

@dp.message_handler(state=States.menu)
async def first_test_state_case_met(message: types.Message):
await message.reply('First!', reply=False)

别忘了稍后完成你的状态

最新更新