2016-12-30 2 views
0

Используя реакцию с метеор здесь, у меня есть основной компонент под названием App, и он обматывает макет страницы (заголовок, боковая панель, правая сторона).Meteor + React + createcontainer

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

Я пытаюсь настроить систему аутентификации с использованием встроенной системы auth. используя «учетные данные-пароль».

К моему знанию, мне нужно использовать createContainer из 'meteor/response-meteor-data', чтобы ввести параметры auth в компоненты.

Подобно этому пример:

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 к одному компоненту, как я могу идти о инъекционного аутентификации информации для всех компонентов в моем приложении (заголовок, Sidebars ..etc)

Ваша помощь очень ценится.

Спасибо

ответ

1

Если вы заключаете App в createContainer, то App будет иметь опору currentUser. Затем можно передать App, чтобы передать опору currentUser всем вашим компонентам. Если вы окажетесь слишком далеко от currentUser, тогда вы можете обернуть только те компоненты, которые нуждаются в currentUser в createContainer.

В этом случае у вас были бы , SidebarContainer и т. Д., Каждый из которых был обернут createContainer.

+0

Я закончил создание 'HeaderContainer' в соответствии с вашим ответом, и он работает, спасибо за вашу помощь :) – Deano

Смежные вопросы