2016-11-06 7 views
0

Я хочу написать оберточный компонент, который передает любые реквизиты для детей. Например, в системе чистого реагирования.передать пользовательскую опору всем детям, реагирующим на маршрутизатор

<Router history={ hashHistory } > 
<Route path="/" component={Base}> 
<Route component={Auth}> 
    <Route path="/who" component={Who} /> 
    <Route path="/features" component={Features} /> 
    <Route path="/try" component={Try} /> 
</Route> 
</Route> 
</Router> 

Я хочу передать пользователю с помощью реквизита, чтобы ни кто, особенности или попробовать компоненты из Auth, которые будут тянуть из локального хранилища.

Глупые вещи, которые я пытался сделать, это манипулировать this.props или this.props.children, но это не нормально, что такое рекомендуемое решение?

class Auth extends Component { 
    render() { 
    //find user or null 
    var user = JSON.parse(localStorage.getItem('user')) || []; 
    //this.props.user = user; 
    console.log('top level router props.user', this.props.user); 
    return (
    <div> 
    {this.props.children} 
    </div> 
    ); 
    } 
} 
+0

вы можете использовать 'onEnter' Пример дочернего маршрута будет как этот' <Маршрут путь = "приборной панели" компонента = {Dashboard} OnEnter = {requireAuth} /> ' –

+0

@KeshanNageswaran благодарит за ответ, мое приложение немного более подробно о ролях, и я хочу, чтобы иметь возможность оценить строку. Я написал небольшой API-интерфейс обертки вокруг базового класса реагирования, который я могу оценить, потому что я просто не уверен, как перейти с верхнего уровня. Я думаю, что мне может понадобиться использовать cloneElement – mibbit

+0

, надеюсь, что [реакция-роутер-проверка подлинности] (https://www.npmjs.com/package/react-router-role-authorization) поможет удовлетворить ваши потребности [blog post] (http://frontendinsights.com/role-based-authorization-using-react-router/), а также –

ответ

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