5

clojurescrtipt で reactjs チュートリアルを書いているときに、this-asマクロが次のようにコンパイルされることがわかりました。

(function(){var t = this; return t;}

これは常に反応クラス内のウィンドウを指します。時々私はこれを回避することができますjs* thisletmapそれらは関数にコンパイルされています。

フォームthis内でreact jsにアクセスするにはどうすればよいですか?let

フィドルの状況: http://jsfiddle.net/VkebS/57/

およびチュートリアルFYIの一部:

(def comment-list 
  (React/createClass 
   #js{:render 
       (fn [] (dom/div #js {:className "commentList"}
                       (let [d (this-as t (.. t -props -data))]
                         (map #(commnt #js {:author (:author %)} (:text %)) d))))}))

PS:データとネイティブマップ関数にネイティブ配列を使用できます

(def comment-list 
  (React/createClass 
   #js{:render 
       (fn [] (dom/div #js {:className "commentList"}
                       (.map (.. (js* "this") -props -data) #(commnt #js {:author (:author %)} (:text %)))))}))

それは機能しますが...

4

1 に答える 1