0

我在 react native 中使用 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

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 并将其放置不给出任何错误时,此部分中的错误才会导致。请帮我解决这个问题。

4

2 回答 2

1

当您导入 TabBarIOS 时,它会以未定义的形式导入,因为您无法在 android 应用程序中使用它。比你打电话

<TabBarIOS selectedTab={this.state.sele 

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

于 2016-07-22T10:53:37.573 回答
0

我没有正确阅读问题。您正在尝试将IOS组件用于 android 应用程序。但你不能。

IOS带有和后缀的组件Android只能分别与IOSAndroid应用一起使用。如果您需要使用跨平台组件,则必须使用不带IOSAndroid后缀的组件或使用 3rd 方组件。

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

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

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

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

于 2016-07-22T11:00:39.913 回答