【问题标题】:React Firebase Semantic Responsive Navigation not Displaying RoutesReact Firebase语义响应导航不显示路线
【发布时间】:2018-04-01 15:39:28
【问题描述】:

我用 react 构建了一个准系统 firebase auth 应用程序,我试图集成语义 UI 的 responsive navigation menu

我的响应式菜单有效,但我遇到的问题是我的路线没有显示在页面上。我认为我可能遇到的问题是我的道具或孩子没有从我的 ResponsiveNavContainer 组件传递到我的 App.js 文件。我的<MobileNav/><DesktopNav/> 组件包括我的<Navigation /> 组件。

我没有收到任何错误。有人能指出我正确的方向吗?

App.js

...
...

const App = () =>
  <div>
    <Router>
          <ResponsiveNavContainer>
            <div>
              <Route exact path={routes.LANDING} component={() => <LandingPage/> }/>
              <Route path={routes.HOME} component={() => <HomePage/>}/>
              <Route path={routes.SIGN_IN} component={() => <SignInPage/>} />
              <Route path={routes.SIGN_UP} component={() => <SignUpPage />} />
              <Route path={routes.ACCOUNT} component={() => <AccountPage />} />
              <Route path={routes.PASSWORD_FORGET} component={() => <PasswordForgetPage />} />
            </div>
          </ResponsiveNavContainer>
      </Router>
  </div>

Navigation.js

...
...

const ResponsiveNavContainer = (props, { children, authUser }) => 
    <div>
        <MobileNav>{children}</MobileNav>
        <DesktopNav>{children}</DesktopNav>
    </div>

ResponsiveNavContainer.propTypes = {
    children: PropTypes.node
}


const Navigation = (props, { authUser }) => 

    <div>
        { authUser ? <NavigationAuth /> : <NavigationNonAuth /> } 
    </div>


const NavigationAuth = () =>

    <ul>
        <li><Link to={routes.LANDING}>Landing Page</Link></li>
        <li><Link to={routes.HOME}>Home</Link></li>
        <li><Link to={routes.ACCOUNT}>Account</Link></li>
        <li><SignOutButton/></li>
    </ul>


const NavigationNonAuth = () =>

    <ul>
        <li><Link to={routes.LANDING}>Landing Page</Link></li>
        <li><Link to={routes.SIGN_IN}>Sign In</Link></li>
        <li><Link to={routes.SIGN_UP}>Sign Up</Link></li>
    </ul>


Navigation.contextTypes = {
    authUser:PropTypes.object
}


export default ResponsiveNavContainer;

【问题讨论】:

    标签: javascript reactjs firebase firebase-authentication semantic-ui


    【解决方案1】:

    我是对的。我需要使用props.children通过道具传递孩子们

    const ResponsiveNavContainer = (props, { authUser }) => 
        <div>
            <MobileNav>{props.children}</MobileNav>
            <DesktopNav>{props.children}</DesktopNav>
        </div>
    

    【讨论】:

      猜你喜欢
      • 2020-11-13
      • 2016-05-30
      • 2017-04-21
      • 1970-01-01
      • 1970-01-01
      • 2017-10-15
      • 2020-03-06
      • 2017-06-08
      • 1970-01-01
      相关资源
      最近更新 更多