道具未传递到选项卡



我有一个 react-native 应用程序,我使用 React-Native-Router-Flux 作为我的导航库,并且我在将 props 传递给子组件时遇到了问题。 在我的login.js文件中,用户登录后,还会使用新的路由属性(登录用户名)调用新路由。这在使用堆栈视图时工作正常,但不适用于选项卡,而 props 值从未从其初始值更改。我在下面列出了我的路线和登录文件:

*未设置的道具名为身份验证

登录(为简洁起见而减少):

.then( (data) => {
          Actions.tabbar({Auth: this.state.username})
        })

路线:

  render() {
    return (
      /* Start Router */
      <routes.Router>
        {/* Start Root Stack */}
        <routes.Scene key="root" headerMode = "none"  hideNavBar={true} tabBarPosition="bottom" >
          {/* Home Route as a stack */}
          <routes.Scene key="Home Test"  title="Home">
              <routes.Scene  key="Home Test"  component={Home} title="Home" />
          </routes.Scene>
          {/* Signup Screen as a Stack */}
          <routes.Scene key="SignupScreen" title="Signup Screen">
            <routes.Scene key="SignupScreen"  component={SignupScreen} title="SignupScreen" />
          </routes.Scene>
          {/* Start Tabs view */}
          <routes.Scene key="tabbar" tabs={true} Auth = {null} tabBarStyle={{ backgroundColor: '#FFFFFF' }}  >
            {/* Live Feed Tab View */}
            <routes.Scene key = "live" title = "live">
              <routes.Scene key="LiveFeed" component={LiveFeed} title="LiveFeed" userLoggedIn = {null} />
            </routes.Scene>
            {/* User Directory Tab View */}
            <routes.Scene key = "User Directory" title = "User Directory">
              <routes.Scene key="UserDirectory" component={UserDirectory} title="UserDirectory" />
            </routes.Scene>
           {/* Messages Tab View */}
           <routes.Scene key = "Messages" title = "Messages">
             <routes.Scene key="Messages" component={Messages} title="Messages" userLoggedIn = {this.props.Auth} />
             <routes.Scene key="Message" component={Message} title="Message" userLoggedIn = {null} ThreadRequested =  {null} />
           </routes.Scene>
          {/* End Tabs View */}
          </routes.Scene>
          {/* End Root Stack */}
        </routes.Scene>
        {/* End Router */}
      </routes.Router>

错误是我传递了道具的默认值,该值在渲染时覆盖了它。要修复,只需删除值中的 prop 默认值,然后使用 Action 传递您的 prop。 ,因此我从场景中删除了 Auth 属性

溶液:

   <routes.Scene key="tabbar" tabs={true} tabBarStyle={{ backgroundColor: '#FFFFFF' }}  >

相关内容

  • 没有找到相关文章

最新更新