2016-10-28 9 views
1

私はclojure/Clojurescript初心者です。これは、私の第1のLuminusウェブアプリ試薬です。 私は、反復で8つのアップロードボタンを設定し、reagent/render-component機能を使用してファイナンシャルに設定しました。Reagent Componentの子要素に正しくアクセスする方法は?

私はループ内に次のようなヒップアップ構造を持ち、すべてのループされたアイテムは反応コンポーネントとして返されます。 タイプ= "ファイル"行動として働いコンポーネントのアップロードボタンを作成した後

(let [state_ (reagent/atom (into [] (take 8 (repeat "img/image.png")))) 
     state' @state_ 
     ad-box 
     [:div {:class "col-md-3 ui segment "} 
     [:img {:class "ui small image" 
       :src (nth state' idn)}] 
     [:div {:class "ui icon buttons"} 
     [:button {:class "ui green button img-btn s-btn"} 
     [:i {:class "fa fa-picture-o"}]] 
     [:input {:class "inputfile" 
       :type "file" 
       :id (str "ad-pic-" idn) 
       :name (str "ad-pic-file-" idn) 
       :on-change (fn [e] 
           (this-as this 
           (let [el this 
             name (.-name el) 
             file (aget (.-files el) 0) 
             form-data (doto 
                (js/FormData.) 
                (.append name file))] 
            (POST "/upload-pics" 
             {:headers {"x-csrf-token" 
                (.-value (.getElementById js/document "token"))} 
             :body form-data 
             :response-format :json 
             :keywords? true 
             :handler handle-response-ok 
             :error-handler handle-response-error}) 
            (set-upload-indicator))))}] 
     [:button {:class "ui disabled button img-btn r-btn" } 
     [:i {:class "fa fa-times"}]]]]] 
    ad-box) 

。しかし、問題は、私はアップロードされたファイルパラメータをバックエンドにajaxリクエストで送ることができないということです。

この質問にはごめんなさい。もしあなたがこれを見ることができたら、私はとても感謝しています。ありがとう。

答えて

1

用途:

(-> e .-target .-files (aget 0)) 

の代わり:

(aget (.-files el) 0) 
関連する問題