React native 数据源属性为';t从试剂传播到React Native ListView组件的呈现方法
我正在尝试在试剂中呈现React本机ListView 我有以下片段:React native 数据源属性为';t从试剂传播到React Native ListView组件的呈现方法,react-native,clojurescript,reagent,hiccup,re-frame,React Native,Clojurescript,Reagent,Hiccup,Re Frame,我正在尝试在试剂中呈现React本机ListView 我有以下片段: (def data-source (React.ListView.DataSource. #js{:rowHasChanged (fn [a b] false)})) (defn render-row [] [ui/view]) (def rows (clj->js ["whoa", "hey"])) (defn main-scene [] (fn [] [ui/list-view {:ren
(def data-source
(React.ListView.DataSource. #js{:rowHasChanged (fn [a b] false)}))
(defn render-row []
[ui/view])
(def rows
(clj->js ["whoa", "hey"]))
(defn main-scene []
(fn []
[ui/list-view {:render-row render-row
:data-source (.cloneWithRows data-source rows)}]))
上述情况导致“Failed propType:Required propdataSource
未在ListView
中指定。请检查app.ios.ui.main\u scene
的渲染方法,然后是“无法读取未定义的属性'RowIdentifies'”,因为数据源在ListView的渲染方法中未定义
我的第一个猜测是在试剂/呃逆或其他东西的内部某处对“数据-”属性进行了一些特殊处理,但我找不到一条线索来解释为什么该属性没有正确传播
是的,(.cloneWithRows数据源行)
实际上返回一个有效的ListViewDataSource对象实例
然后,如果我将:data source
作为:dataSource
传递,我得到的只是一个令人费解的“StaticRenderer.render():必须返回一个有效的组件。您可能返回了未定义的、数组或其他一些无效对象。”
我正在使用react native 0.18.1
和试剂0.5.1
与re frame 0.6.0
。我已经用试剂0.6.0-alpha
和重新帧0.7.0-alpha
检查了这一点,得到了相同的错误
我已经挖了好几个小时了,我想我需要一些帮助。是否有任何提示/想法尝试修复此问题,代码中是否有任何参考?非常感谢。首先,数据源应该作为
:dataSource
而不是:dataSource
传递给视图。不管什么原因,后者都不起作用。作为旁注,render row方法可以作为:render row
或:renderRow
传递,并且它可以双向工作。呵呵
其次,render row
函数应该返回React组件,而不是数组。如果数组稍后由试剂渲染,则后者也可以,但listview不会对从渲染行获取的数据进行任何类型的后处理,而只是尝试返回该数据以进行反应,如果它是一个普通clojure数组,则会退出
因此,上述渲染行
函数应编写为:
(defn render-row []
(r/as-element [ui/view]))
然后一切都会好起来