我正在使用反射库开发一个Web应用程序,我试图实现一个功能,当用户在输入字段中按Enter键时,该功能将执行。具体来说,我有一个Input组件,我希望在用户按Enter键时触发一个搜索函数。
以下是我迄今为止尝试过的:
# My State class
class State(rx.State):
# ... (other state variables)
def handle_key_press(self, event):
if event.type_ == 'key_down' and event.key == 'Enter':
self.handle_search()
# My Input component
rx.input(
placeholder="Search here...",
on_key_down=State.handle_key_press,
)
但是,我遇到了一个错误,函数没有按预期触发。我已经检查了文档,但是我找不到关于on_key_down事件返回的事件对象的结构的详细信息。
谁能给我提供更多关于on_key_down事件触发器返回的事件对象结构的信息?具体来说,我应该检查哪些属性来确定是否按下了Enter键?此外,如果有更好的方法在反射库中实现此功能,我将非常感谢任何指导。
谢谢您的帮助!
2条答案
按热度按时间nuypyhwy1#
只是if语句错了。
同样重要的是,在调用现有函数时,必须使用用户返回。例如,当使用搜索框时,无论是按回车键还是单击按钮,都会调用相同的搜索函数。
fquxozlt2#
至少在Reflex 0.2.6版本中,您可以直接在事件变量中以字符串的形式获取键。所以,你的代码应该看起来像这样: