Meteor + React + createcontainer

时间:2016-12-30 20:45:07

标签: reactjs meteor react-router meteor-accounts

在这里使用与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内置的auth系统设置身份验证系统。使用“ accounts-password ”包。

据我所知,我需要使用来自'meteor / react-meteor-data'的 createContainer 来向组件注入auth params。

与此示例类似:

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);

但是在上面的例子中,它只将parms注入单个组件,我怎样才能将auth信息注入我的应用程序中的所有组件(Header,Sidebars ..etc)

非常感谢您的帮助。

谢谢

1 个答案:

答案 0 :(得分:1)

如果您将App包裹在createContainer中,那么App将拥有道具currentUser。然后,App可以将currentUser道具传递给您的所有组件。如果您发现自己过于currentUser过多,那么您只能在currentUser中打包需要createContainer的组件。

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