当用户在输入字段中点击 "ENTER" 时停止页面重新加载 - ClojureScript
Stop page reload when user hits "ENTER" in input field - ClojureScript
我正在学习使用 Clojurescript 和 shadow-cljs 进行 Web 开发,到目前为止效果非常好。我创建了一个 really bad reddit viewing webapp 但发现当用户第一次导航到该站点并单击搜索字段时,然后点击 "ENTER" 它将重新加载页面。我已将 (.preventDefault e) 订阅添加到 onSubmit 事件,但它仍会重新加载,除非用户更改图表并返回(将 # 添加到网址)。
这是生成输入字段的试剂代码:
[:input.form-control.mr-sm-2
{:type "text"
:placeholder "Aww"
:aria-label "Search"
:on-change #(rf/dispatch [:set-search-val (-> % .-target .-value)])
:onSubmit (fn [e] (do (.preventDefault e)
(identity false)))}]
2 个问题:
我做错了什么?我希望 subreddit 在进入时刷新,但如果我能让它停止重新加载我会很高兴
为什么网址中有#可以解决问题?
您需要拼写属性 :on-submit
(小写,虚线),(编辑) 并且它需要在表单上,而不是输入上。
旁白:您不需要 do
来包装函数体,并且除了在事件上调用 .preventDefault
之外返回 false
是多余的。
我正在学习使用 Clojurescript 和 shadow-cljs 进行 Web 开发,到目前为止效果非常好。我创建了一个 really bad reddit viewing webapp 但发现当用户第一次导航到该站点并单击搜索字段时,然后点击 "ENTER" 它将重新加载页面。我已将 (.preventDefault e) 订阅添加到 onSubmit 事件,但它仍会重新加载,除非用户更改图表并返回(将 # 添加到网址)。
这是生成输入字段的试剂代码:
[:input.form-control.mr-sm-2
{:type "text"
:placeholder "Aww"
:aria-label "Search"
:on-change #(rf/dispatch [:set-search-val (-> % .-target .-value)])
:onSubmit (fn [e] (do (.preventDefault e)
(identity false)))}]
2 个问题:
我做错了什么?我希望 subreddit 在进入时刷新,但如果我能让它停止重新加载我会很高兴
为什么网址中有#可以解决问题?
您需要拼写属性 :on-submit
(小写,虚线),(编辑) 并且它需要在表单上,而不是输入上。
旁白:您不需要 do
来包装函数体,并且除了在事件上调用 .preventDefault
之外返回 false
是多余的。