首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >React Native : TabBarIOS和导航

React Native : TabBarIOS和导航
EN

Stack Overflow用户
提问于 2016-07-11 16:31:59
回答 0查看 2K关注 0票数 0

我有一个简单的应用程序,有3个标签。选项卡由index.ios中的TabBarIOS定义。我没有用导航器也没有用NavigatorIOS。在每个TabBarItem中,我只需将组件名称放在标记中。如下所示:

代码语言:javascript
复制
return(
        <TabBarIOS
        selectedTab={this.state.selectedTab}
        //unselectedTintColor="yellow"
        //tintColor="white"
        //barTintColor="darkslateblue"
        >

        <TabBarIOS.Item
        icon={{uri: 'courses.png', scale: 5}}
        title="Courses"
        badge={undefined}
        selected={this.state.selectedTab === 'courses'}
        onPress={() => {
          this.setState({
            selectedTab: 'courses',
          });
        }}>
        <Courses />
        </TabBarIOS.Item>

        <TabBarIOS.Item
        icon={{uri: 'register.png', scale: 5}}
        title="Register"
        badge={undefined}
        selected={this.state.selectedTab === 'register'}
        onPress={() => {
          this.setState({
            selectedTab: 'register',
          });
        }}>
        <NavigatorIOS
          //style={styles.nav}
          initialRoute={{
            title : 'Register',
            component: Register
          }}
        />
        </TabBarIOS.Item>

        <TabBarIOS.Item
        icon={{uri: 'profile.png', scale: 5}}
        title="Profile"
        badge={undefined}
        selected={this.state.selectedTab === 'profile'}
        onPress={() => {
          this.setState({
            selectedTab: 'profile',
          });
        }}>
        <Profile />
        </TabBarIOS.Item>


        </TabBarIOS>
      );

如果您在代码中看到,在第一个和第三个选项卡中,我通过将组件名称放在如下标记中来显示项目的内容

代码语言:javascript
复制
<Courses />

但对于第二个项目,我尝试使用navigatorios来显示组件,但它只显示一个带有标题的空白页面。它不显示组件的内容。我看到很多这样的例子,但它不适用于我。也许是因为我没有对index.ios使用navigator或navigatorios,因为在我看到的大多数示例中,他们将navigatorios放入索引并设置初始路由。我试过了,但对我不起作用。

在这里之前一切都很好。在课程页面,我有一个列表视图下的项目(实际上项目与标题,这是可折叠的),当用户点击每个项目,我需要将用户重定向到一个页面,以显示课程的详细信息。(我也应该传递一些参数)。

代码语言:javascript
复制
render(){

  return (
      <View style={{
        flex: 1
      }}>
      <ListView
        dataSource={this.state.dataSource}
        renderRow={this.renderRow.bind(this)}
        style={styles.listView}
      />
      </View>
    );
  }
  renderRow(data) {

    var header = (
      <View>
          <View style={styles.rowContainer}>
            <View  style={styles.textContainer}>
              <Text style={styles.title}>{data.nid}</Text>
              <Text style={styles.description} numberOfLines={0}>{data.title}</Text>
            </View>
          </View>
          <View style={styles.separator}></View>
    </View>
    );
///////////
    var cid = [];
    var content = [];
    for(let x=0; x < Object.keys(data.course).length; x++){
      cid[x] = data.course[x].course_id;
      content.push(
        <TouchableHighlight
        underlayColor='#e3e0d7'
        key={x}
        onPress={()=> {
          this.rowPress(x); /////  here i need to redirect user to another page to show course's details
        }}
        style={styles.child}
        >
        <Text style={styles.child}>
        {data.course[x].title}
        </Text>
        </TouchableHighlight>
      );
    }
    var clist = (
      <View style={styles.rowContainer}>
      {content}
      </View>
    );
////////////
    return (
      <Accordion
        header={header}
        content={clist}
        easing="easeOutCubic"
      />
    );
  }

我希望将用户重定向到页面并显示详细信息,并且我希望有一个标题标题和一个后退按钮(如Navigator或NavigatorIOS)。

我已经找到了一个样例应用程序,它做的正是我想要的,但它对我来说太复杂了,我不知道它是如何工作的,react native tabbar-navigator (iOS)

我已经研究了许多示例和教程。我试图将他们的代码实现到我的代码中,但它不起作用。我也找到了其他一些使用redux的教程,但它对我来说太复杂和困难了。我在找更简单的东西。Navigation using Redux

期待您的回音,如有任何帮助,我们不胜感激。提前感谢!

EN

回答

页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38302417

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档