2015-08-02 2 views
0

Выполняю аутентификацию на моем маршруте верхнего уровня, который я назвал App, используя реактивный маршрутизатор. Мое приложение использует следующиеПередайте this.state детям в реакционном маршрутизаторе 1.x/React, Flux

<div className="app-wrapper"> 
    <NavbarC currentUser={this.state.currentUser} /> 
    {this.props.children} 
    </div> 

Я хочу, чтобы иметь возможность пройти this.state.currentUser к в this.prop.children.

Возможно ли это или просто создать новое состояние с помощью созданного UserStore?

ответ

0

Поскольку я использую флюс, кажется правильным способом справиться с этим - это вытащить данные из магазина для каждого маршрута. Мой маршрут выглядит следующим образом:

let getCurrentUserFromStore =() => { 
    return { currentUser: UserStore.getCurrentUser() }; 
} 

export default class Landing extends React.Component{ 
    constructor(props) { 
    super(props); 
    this.state = getCurrentUserFromStore(); 
    this.onStoreChange = this.onStoreChange.bind(this); 
    } 
    onStoreChange() { 
    this.setState(getCurrentUserFromStore()); 
    } 
    componentDidMount() { 
    UserStore.addChangeListener(this.onStoreChange); 
    } 
    componentWillUnmount() { 
    UserStore.removeChangeListener(this.onStoreChange); 
    } 
    render() { 
    if ($.isEmptyObject(this.state.currentUser)) { 
     return <LoginPage /> 
    } else { 
     return <DashboardPage currentUser={this.state.currentUser} /> 
    } 
    } 
} 
Смежные вопросы