错误:元素类型无效,期望字符串(对于内置组件)或类/函数(对于复合函数)但未定义

时间:2016-07-22 10:33:13

标签: react-native tabbarios

我在反应原生中使用TabBarIOS,并在android模拟器上运行它,但在使用TabBarIOS.Item时我收到以下错误Element type is invalid expected a string(for built in components) or a class/function (for composite functions) but got undefined check render method of Approvals

批准的

render()方法如下

render(){

  return (
    <View style={styles.container}>
        <View style={styles.strip}>
            <Image style={{width:50, height:30,padding:10,top:5}} source={require('./drawable/drawable/asap.png')}/>
            <Text style={{fontSize:20,color:'white',bottom:20,left:60,padding:10}}>Approvals</Text>
        </View>
        <TabBarIOS selectedTab={this.state.selectedTab}>
            <TabBarIOS.Item
            title="Pending"
            icon={{uri:'./drawable/drawable/approvalbadge.png',scale:3}}
              selected={this.state.selectedTab==='pending'}
              onPress={() => {
                  this.setState({
                      selectedTab: 'pending',
                  });
              }}>
                <Pending>
            </TabBarIOS.Item>

         </TabBarIOS>
    </View>

  );

}

本节中的错误只会导致我删除TabBarIOS并将其放置并不会出现任何错误。请帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

当您导入TabBarIOS时,它将导入为undefined,因为您无法在Android应用中使用它。 比你打电话

<TabBarIOS selectedTab={this.state.sele 

它被解释为undefined 您最好使用外部实现(类似https://github.com/exponentjs/react-native-tab-navigator)或编写自己的实现。

答案 1 :(得分:0)

我没有正确地阅读这个问题。您正在尝试将 IOS 组件用于Android应用。但你不能。

带有IOSAndroid后缀的组件分别仅适用于IOSAndroid应用。如果您需要使用跨平台组件,则必须使用不带IOSAndroid后缀的组件,或使用第三方组件。

例如,Navigator适用于 ios和android ,但NavigatorIOS仅适用于ios 。

在这种情况下,您必须使用以下内容:

https://github.com/exponentjs/react-native-tab-navigator

https://github.com/alinz/react-native-tabbar