2016-11-04 4 views
3

Ранее в реакции-маршрутизатор v3. * Я прошел реквизит к детям компонентам черезПередача реквизита дети компонентов с реагировать маршрутизаторы v4

React.cloneElement(this.props.children, this.props) 

Как это делается в реакцию маршрутизаторов v4 с новым <Match /> API

до сих пор решение, которое я придумал, чтобы использовать метод render в <Match /> API:

<Match pattern="/" render={() => <ChildComponent {...this.props} />} /> 

с использованием ES6 зр прочитайте синтаксис, чтобы передать реквизиты дочернему компоненту. Есть ли лучший способ, который также несет в себе все стандартные реквизиты (местоположение, шаблон, путь, isExact) к дочернему компоненту?

ответ

3

Судя по the render code of v4.0.0-alpha5, вы следующие два варианта:

<Match pattern="/" render={props => <ChildComponent {...props} {...this.props} />} /> 
<Match pattern="/">{({matched, ...props}) => { 
    return matched ? <ChildComponent {...props} {...this.props} /> : null; 
}}</Match> 

Также смотрите Match API documentation.

+0

Я использую реагировать-маршрутизатор v4.0.0-2, как я не уверен, насколько стабильна альфа-версии. Я думаю, что реакция-маршрутизатор v4 все еще находится в разработке, я заметил даже, что npm только отправляет v3, если вы явно не запрашиваете версию 4 – Shadrech

+0

Кажется, что соответствующий код рендеринга в альфа-2 одинаковый. Но да, я думаю, что v4 все еще очень экспериментальный. Если вы ищете что-то стабильное, я бы вместо этого использовал v3. –

+0

Да, это так. Не понимали, что реквизит был аргументом, переданным в функцию рендеринга. Благодаря! Это, вероятно, лучшее решение на данный момент – Shadrech

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

  • Нет связанных вопросов^_^