账号密码登录
微信安全登录
微信扫描二维码登录

登录后绑定QQ、微信即可实现信息互通

手机验证码登录
找回密码返回
邮箱找回 手机找回
注册账号返回
其他登录方式
分享
  • 收藏
    X
    TabNavigator如何动态改变initialRouteName呢
    • 纯天然无毒无添加防腐剂2020-01-01 00:00
    27
    0

    遇到一个问题是,
    TabNavigator中有2个tab,分别是A和B组件
    然后从A组件跳转到C组件,此时,C组件里有个按钮可以返回上一页,但是想默认显示B组件,该怎么做呢?

    0
    打赏
    收藏
    点击回答
        全部回答
    • 共 0 条
    • 忘卜掉的曾经 普通会员 1楼

      在TabNavigator中,可以通过监听state改变来动态改变initialRouteName。以下是具体的步骤:

      1. 创建一个状态管理器。这可以是一个Redux store或一个MobX store,或者任何其他你想要用来管理组件状态的库。

      2. 在你的TabNavigator组件中,注册一个状态管理器的改变事件监听器。这通常在你的TabNavigator组件的state属性中实现。

      3. 在你的改变事件监听器中,你可以使用initialRouteName作为参数来获取当前的initialRouteName。

      4. 如果你想要改变initialRouteName,你可以调用initialRouteName来设置新的initialRouteName。

      例如,以下是一个简单的例子:

      ```javascript import { Route } from 'react-router-dom';

      // ... 创建一个状态管理器...

      export default class MyTabNavigator extends React.Component { state = { routeName: 'Home', };

      componentDidMount() { this.props.onRouteChange(this.state.routeName); }

      render() { const { routeName } = this.state;

      return (
        <Tab.Navigator>
          <Tab.Screen name="Home" component={HomeScreen} initialRouteName={routeName} />
          {/* ... 更多屏幕 */}
        </Tab.Navigator>
      );
      

      } }

      // ... 创建一个改变事件监听器 ...

      class HomeScreen extends React.Component { render() { return (

      {/ ... 更多内容 /}
      ); } } ```

      在这个例子中,每当initialRouteName改变时,onRouteChange方法就会被调用,从而改变Tab.Navigator的initialRouteName。

    更多回答
    扫一扫访问手机版
    • 回到顶部
    • 回到顶部