【问题标题】:Why does navbar back button still show with ActionConst.REPLACE in react-native-router-flux?为什么导航栏后退按钮仍然在 react-native-router-flux 中显示 ActionConst.REPLACE?
【发布时间】:2016-09-22 10:21:58
【问题描述】:

我从登录场景开始,当我单击带有Actions.hometype={ActionConst.REPLACE} 的按钮时,它工作正常,并且在主页场景中,导航栏没有后退按钮。但如果我从 Login 到 Register 到 RegisterTwo 再到 Home,Home 场景的导航栏有一个返回按钮。

是什么导致了这个问题?我只尝试了type='replace',后退按钮仍然显示在导航栏中。

我的场景是这样设置的:

const RouterWithRedux = connect()(Router)
const store = configureStore()

export default class App extends Component {
  render() {
    return (
      <Provider store={store}>
        <RouterWithRedux>
          <Scene key='root'>
            <Scene component={Login} initial={true} key='login' title='Login'/>
            <Scene component={Register} key='register' title='Register'/>
            <Scene component={RegisterTwo} key='registerTwo' title='Register Two'/>
            <Scene component={Home} key='home' title='Home' type={ActionConst.REPLACE}/>
          </Scene>
        </RouterWithRedux>
      </Provider>
    )
  }
}

我只是使用import { Actions } from 'react-native-router-flux'Action.key 进行导航。

提前谢谢你!

【问题讨论】:

    标签: javascript reactjs react-native redux react-native-router-flux


    【解决方案1】:

    你可以试试:

    <Scene component={Home} key='home' title='Home' type="reset"/>
    

    或在您的导航操作中

    Action.home({type:'reset'})
    

    【讨论】:

    • 工作完美!在我接受答案并投票之前,只需几个简单的问题,重置和替换之间的主要区别是什么?你什么时候会选择一个而不是另一个?
    • 重置类似于替换,只是它卸载导航器堆栈中的组件。
    • Reset 与 replace 类似,只是它卸载了导航器堆栈中的组件。 '"reset" 必须在你想重置导航器堆栈的情况下使用。 “replace”用于替换当前视图并在导航器堆栈中添加旧视图,它类似于“Action.key”。您可以查看此页面以获取更多信息:link
    • 知道了,只是为了确认。登录后,重置堆栈通常是正确的做法,对吗?
    • 是的。您检查用户是否已连接,如果用户已连接,则在主屏幕中重定向用户并重置堆栈。当用户注销时,您在登录屏幕中重定向用户并重置堆栈。
    猜你喜欢
    • 1970-01-01
    • 2017-03-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多