Как правильно сохранить значение ввода текста в БД в рефрейме? - PullRequest
0 голосов
/ 03 марта 2020

Я обрабатываю ввод текста с использованием рефрейма следующим образом:

   [:input {
                       :type "text"
                       :value @(subscribe [:text-bar])
                       :on-change
                       #(dispatch [:text-bar-input (-> % .-target .-value)])
                       }]

;; event
(reg-event-db
 :text-bar-input
 (fn [db [_ input-value]]
   (if-not (empty? input-value)
     (assoc db :text-bar input-value) 
     (assoc db :text-bar input-value))))

;; sub
(reg-sub
 :text-bar
 (fn [db]
   (:text-bar db)))

Но при вводе текста я получаю следующее при нажатии клавиши, например, клавишу "p":

[Error] Error: No matching clause: p
    (anonymous function) (router.js:624)
    re_frame$router$_exception (router.js:192)
    (anonymous function) (router.js:448)
    (anonymous function) (router.js:514)
    re_frame$router$_fsm_trigger (router.js:97)
    (anonymous function) (router.js:550)
    re_frame$router$_process_1st_event_in_queue (router.js:135)
    (anonymous function) (router.js:291)
    re_frame$router$_run_queue (router.js:173)
    (anonymous function) (router.js:472)
    (anonymous function) (router.js:514)
    re_frame$router$_fsm_trigger (router.js:97)
    (anonymous function) (router.js:336)
    (anonymous function) (nexttick.js:211)

Что я делаю не так?

...