【问题标题】:Meteor + React + createcontainer流星+反应+创建容器
【发布时间】:2017-05-15 02:57:51
【问题描述】:

在这里使用 react with meteor ,我有一个名为 App 的主要组件,它包装了页面布局(标题、侧边栏、右侧边栏)。

export default class App extends Component {
  render() {
    return (
      <div>
        <nav className="navigation">
          <Header />
          <Sidebar />
        </nav>
        <div className="content">
          <Subnavbar />
          <div className="container">
            {this.props.children}
          </div>
        </div>
        <Rightsidebar />
      </div>
    );
  }
};

我正在尝试使用 Meteor 的内置身份验证系统来设置身份验证系统。使用“accounts-password”包。

据我所知,我需要使用 'meteor/react-meteor-data' 中的 createContainer 将身份验证参数注入组件。

类似于这个例子:

import { createContainer } from 'meteor/react-meteor-data';
import MainPage from '../pages/MainPage.jsx'
export default MainContainer = createContainer(({params}) => {
  const currentUser = Meteor.user();
  return {
    currentUser,
  };
}, MainPage);

但是在上面的示例中,它只将参数注入到单个组件中,我如何才能将身份验证信息注入到我的应用程序中的所有组件(标题、侧边栏等)

我们非常感谢您的帮助。

谢谢

【问题讨论】:

    标签: reactjs meteor react-router meteor-accounts


    【解决方案1】:

    如果你将App 包裹在createContainer 中,那么App 将有一个道具currentUser。然后 App 负责将 currentUser 属性传递给您的所有组件。如果您发现自己在currentUser 中传递的太多,那么您可以只将需要currentUser 的组件包装在createContainer 中。

    在这种情况下,您将拥有HeaderContainerSidebarContainer 等,每个都用createContainer 包裹。

    【讨论】:

    • 我最终根据您的回答创建了HeaderContainer,它有效,感谢您的帮助:)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-21
    • 2016-09-07
    • 2016-04-04
    相关资源
    最近更新 更多