javascript - Reactjs - 渲染登录组件

标签 javascript reactjs

我正在关注this tutorial关于 react 路由。我设法将其连接到我的数据存储,并且工作正常。

令我困扰的是登陆页面。我的方式set it up ( fiddle )当用户转到根页面时,会显示登录链接。当用户单击该登录时,将显示登录表单组件。

我想避免点击登录链接。当用户导航到根页面时,如果没有登录,则自动显示登录组件。

这个Fiddle显示了我徒劳的尝试让它发挥作用。 以前有效的代码:

render() {
return (
  <div>
    <ul>
      <li>
        {this.state.loggedIn ? (
          <Link to="/logout">Log out</Link>
        ) : (
          <Link to="/login">Sign in</Link>
        )}
      </li>
      <li><Link to="/about">About</Link></li>
      <li><Link to="/dashboard">Dashboard</Link> (authenticated)</li>
    </ul>
    {this.props.children || <p>You are {!this.state.loggedIn && 'not'} logged in.</p>}
  </div>
)
}

这是我的尝试:

 render() {
return (
   <Login data={this.state} />
)
}

这实际上呈现了登录组件,但会产生以下错误:

Uncaught TypeError: Cannot read property 'state' of undefined

似乎已断开连接。

我已经为此苦恼了一段时间,感谢任何帮助

最佳答案

按照 data={something} 的方式将变量传递给子级称为 props .

您可以访问data从内部<Login />组件 this.props.data

我强烈建议您阅读此内容:https://github.com/uberVU/react-guide/blob/master/props-vs-state.md

关于javascript - Reactjs - 渲染登录组件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35867983/

相关文章:

javascript - 在 Google 可视化仪表板中使用类别过滤器控制列

javascript - 使用 react-router v4 添加或更新查询参数而不重新渲染主组件

reactjs - 在 React Native ios 应用程序中无法识别 fontFamily

reactjs - Meteor/React/React-Bootstrap 构建失败

javascript - 如何将参数传递给表单标签外部定义的javascript函数?

javascript函数没有被执行

javascript - 使用Jquery/ajax&php向数据库插入数据

reactjs - 如何将变量传递给 GraphQL 查询?

javascript - 如何将 HTMLElement 转换为 JSX.Element

reactjs - 如何使用 Lodash 和 Normalizr 处理我的 redux 存储?