clojurescrtipt で reactjs チュートリアルを書いているときに、this-as
マクロが次のようにコンパイルされることがわかりました。
(function(){var t = this; return t;}
これは常に反応クラス内のウィンドウを指します。時々私はこれを回避することができますjs* this
がlet
、map
それらは関数にコンパイルされています。
フォーム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 %)))))}))
それは機能しますが...