ListView上的RefreshControl抛出不变违例

时间:2017-10-08 20:42:07

标签: javascript reactjs react-native native-base

我正在尝试使用简单的“提取 - 刷新”列表。我试图复制@ sankhadeeproy007在#269中显示的动画gif,但它会抛出以下错误。

  

不变违规:元素类型无效:期望一个字符串(对于内置组件)或一个类/函数(对于复合组件)但得到:undefined。您可能忘记从其定义的文件中导出组件。请检查devicePage的呈现方法。此错误位于:在KeyboardAwareScroll中创建的ScrollView(由KeyboardAwareScrollView创建)(在Content.js:10中)由ContentPage(由SceneView创建)的Styled(内容)(由devicePage创建)中的Content(由Styled(Content)创建)在withWachedChildNavigation(DrawerScreen)中的DrawerScreen(由withCachedChildNavigation(DrawerScreen)创建)中的SceneView(由DrawerScreen创建)

我的简单组件的代码如下:

    'use strict'
import React, { Component } from 'react';
import { Content, View, List, ListItem, RefreshControl, Text } from 'native-base'


class devicePage extends Component {

  constructor () {
    super()
    this.state = {
      refreshing: false,
    }
  }

  render() {
    const items = ['Bike 1', 'Bike 2', 'Bike 3']
    return (
      <Content refreshControl={this._refreshControl()}>
      <View>
        <List
          dataArray={items}
          renderRow={(item) => 
            <ListItem>
              <Text>{item}</Text>
              </ListItem>
          } />
      </View>
      </Content>
    )
  }

  _refreshControl(){
    return (
      <RefreshControl
        refreshing={this.state.refreshing}
        onRefresh={()=>this._refreshListView()} />
    )
  }

  _refreshListView(){
    //Start Rendering Spinner
    this.setState({refreshing:true})
    console.log.tron('refreshing...')
    this.setState({refreshing:false}) //Stop Rendering Spinner
  }
}

export default devicePage;

问题在于refreshControl。如果我从内容中删除它,页面呈现正确。 如果我将refreshControl移动到List,我会得到与之前相同的错误。

如果我将refreshControl移动到View选项卡中,如:

      <View refreshControl={this._refreshControl()}>>
        <List
          dataArray={items}
          renderRow={(item) => 
            <ListItem>
              <Text>{item}</Text>
              </ListItem>
          } />
      </View>

我收到警告:

  

警告:React.createElement:type无效 - 需要一个字符串......

我正在使用的相关包和版本是:

"native-base": "2.3.2",
"react-native": "0.49.1",
"react": "16.0.0-alpha.12"

有什么建议吗?

解决方案解决方案是从react-native而不是native-base导入RefreshControl

0 个答案:

没有答案