React Native + React - Native -router-flux:如何仅将hideNavBar应用于

React Native + react-native-router-flux: How to apply hideNavBar to only one <Scene/>?

本文关键字:React Native 应用于 何仅 hideNavBar -router-flux      更新时间:2023-09-26

在React Native中使用React - Native -router-flux,我有两个<Scene/>,当我将hideNavBar应用于第一个Login时,它也适用于第二个Home,即使它们处于同一级别。如何将hideNavBar仅应用于一个<Scene/>, Login ?

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} hideNavBar initial={true} key='login' title='Login'/>
            <Scene component={Home} key='home' title='Home'/>
          </Scene>
        </RouterWithRedux>
      </Provider>
    )
  }
}

我不确定原因。可能它在不同的actions/PUSH之间持久化一些状态参数。作为一种变通方法,你可以试着明确一点:它对我有效。

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} hideNavBar initial={true} key='login' title='Login'/>
            <Scene component={Home} hideNavBar={false} key='home' title='Home'/>
          </Scene>
        </RouterWithRedux>
      </Provider>
    )
  }
}

从那个路由开始,NavBar是可见的。如果你的Login在整个场景流程中只出现一次,这是合适的。