【问题标题】:Button onpress go to tab screen in react native base按钮 onpress 转到反应本机基础中的选项卡屏幕
【发布时间】:2019-09-21 19:59:12
【问题描述】:

这里我使用了 React 原生基础滚动标签。如果我按下按钮('Go to menu4'),那么这个屏幕将移动到 Menu4。该怎么做?

这是我的代码。

import React, { Component } from 'react';
import { Container, Button, Tab, Tabs, ScrollableTab,Text} from 'native-base';

import Screen from './screens/Screen';

export default class MyApp extends Component {
  render() {
    return (
      <Container>
        <Tabs locked={true} renderTabBar={()=> <ScrollableTab />}>
        <Tab heading="Menu1">
            <Screen />
          </Tab>
          <Tab heading="Menu2">
            <Screen />
          </Tab>
          <Tab heading="Menu3">
            <Screen />
          </Tab>
          <Tab heading="Menu4">
            <Screen />
          </Tab>
          </Tabs>
          <Button><Text>Go to Menu4</Text></Button>
      </Container>
    );
  }
}

【问题讨论】:

  • 想要在应用内的页面之间切换?如果是这样,您需要选择一个路由器目录并在按钮内使用 onPress = {} 事件

标签: react-native react-navigation native-base


【解决方案1】:

NativeBase 选项卡有一个名为goToPage 的方法。

修改你的代码:

<Tabs 
    locked={true} 
    renderTabBar={()=> <ScrollableTab />}
    ref={c=> this.tabs = c} 
>

      ...

      <Button onPress={()=> this.changePage(4)}><Text>Go to Menu4</Text></Button>

      ...

</Tabs>

changePage 函数是:

changePage=(page)=> this.tabs.goToPage(page)

【讨论】:

  • 如果我在标签组件之外声明按钮,那么它会工作吗?
  • 你可以将它作为 props 传递给孩子,也可以设置 redux 以保持跟踪显示哪个页码的状态
  • 你能解释一下吗(ref={c=> this.tabs = c} & this.tabs.goToPage(page))
  • 你可以在这里查看反应文档:en.reactjs.org/docs/refs-and-the-dom.html
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-02-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-09
  • 2017-08-10
相关资源
最近更新 更多