2017-02-19 9 views
0

Я пытаюсь выяснить, как обернуть React Router v4's NavLink компонент для установки по умолчанию activeClassName.Как обернуть компонент NavLink React Router v4?

Однако props не определено.

Wrapper:

const Test = ({children, props}) => { 
    console.log(children) // Blackboard 
    console.log(props) // undefined 
    return (
    <NavLink activeClassName="active" {...props}> 
     {children} 
    </NavLink> 
) 
} 

Использование:

<Test to='/blackboard'>Blackboard</Test> 

Почему children заселена, но propsнеопределенными?

Update:

При использовании to вместо props, это работает.

const Test = ({children, to}) => {

Однако, я не знаю, почему props не работает.

ответ

1

Хорошо, я понимаю это сейчас.

const Test = ({children, to}) => {

children и to являются деструктурированный от props.

Это работает:

const Test = props => 
    <NavLink activeClassName='active' {...props}> 
    {props.children} 
    </NavLink> 
+1

К сожалению, я сделал несколько предположений о синтаксисе вы использовали, так как вы использовали v4 Router. Я должен был вырвать подсказку 'children' или явно передать' to' в NavLink, если вы не используете другие реквизиты, чтобы вы не передавали опору 'children' в NavLink. –

+0

@ Andy_D, я рад, что вы это сделали, так как теперь я понимаю немного больше, чем раньше. Были ли у вас какие-либо мнения/ресурсы по передовой практике для компонентов React? –