如何传递将组件返回为prop的函数?

时间:2018-06-30 19:05:12

标签: carousel clojurescript reagent

我需要创建自定义列表项的轮播,并且我已经将轮播组件库之一(react-native-snap-carousel)导入到项目中,但是轮播组件需要返回需要的组件的道具。呈现为轮播itemList。  所以我发送这样的道具

[carousel {:render-item (fn [] [my-custom-item]) 
               ...otherprops... }]

但是此消息出错

Element type is invalid: expected a string (for built-in components) or a class/function (for composite components) but got: object.

我如何发送道具作为返回元素的函数?

这是如何在js上调用轮播组件

        <Carousel
          ref={(c) => { this._carousel = c; }}
          data={this.state.entries}
          renderItem={this._renderItem}
          sliderWidth={sliderWidth}
          itemWidth={itemWidth}
        />

1 个答案:

答案 0 :(得分:0)

轮播组件期望从render-item函数返回一个react元素或一个字符串。但是您将返回普通试剂组分。

您需要使用试剂的as-element函数将试剂成分转换为反应成分:

[carousel {:render-item (fn [] (reagent/as-element [my-custom-item])) 
           ...otherprops... }]