反应本机Flatlist ListHeaderComponent导致错误:来自JS的本机调用中的异常null

时间:2019-02-02 10:49:18

标签: android react-native exception android-4.2-jelly-bean react-native-flatlist

我有一个Flatlist,在将本机版本从0.55升级到0.57之前,它可以正常工作

它在所有设备上都能正常工作,但现在仅在android版本> = 5上有效 并在屏幕开头的android 4上显示错误:

Exception in native call from JS 

null

我已经尝试了2个星期,现在我真的不知道该怎么办。

好吧... 这是我的平面清单。 我发现问题出在ListHeaderComponent

如果我替换ListItem并将其子级放到Button标记中,则不会显示该错误:

显示错误:

  return (
            <FlatList
                data={this.state.items}
                renderItem={this.renderItem}
                shouldItemUpdate={(props, nextProps) => {
                    return props.item !== nextProps.item
                }}
                keyExtractor={(item, index) => index.toString()}
                ListEmptyComponent={() => this.state.loading ? <MySpinner notMax={true}/> : []}
                ListHeaderComponent={() => (
                         <ListItem itemDivider style={Styles.ListItem}>
                              <TouchableWithoutFeedback onPress={() => Actions.categories_page({title:'categories'})}>
                                 <View>
                                      <Text textStyle={Styles.ListItemAllBtn}>Category</Text>
                                 </View>
                             </TouchableWithoutFeedback>
                             <Text textStyle={Styles.ListItemText}>today off</Text>
                         </ListItem>
                    ) }
                numColumns={2}
                // refreshing={this.state.refreshing}
                // onRefresh={this.handleRefresh}
                removeClippedSubviews={false}
                showsHorizontalScrollIndicator={false}
                onEndReached={this.props.isLimit ? '' : this.handleLoadMore}
                onEndReachedThreshold={0.8}
                initialNumToRender={8}
                horizontal={this.props.horizontal}
                ListFooterComponent={this.renderFooter}
                getItemLayout={this.getItemLayout}
                inverted={this.props.horizontal ? true : false}
            />
        )

,如果我这样编写ListHeaderComponent,它不会显示错误:

       ListHeaderComponent={() => (
              <View style={Styles.ListItem}>
                     <Button>
                           <Text textStyle={Styles.ListItemAllBtn}>Category</Text>
                     </Button>
              </View>
       )}

但是我不想写一个按钮标签,并把我的Text插入。 我认为问题出在其他方面...

有人可以帮忙吗?

0 个答案:

没有答案