2017-11-15 10 views
0

다음과 같이 나는 Navlink 요소가 :스타일 링크는 반작용 라우터 V4

<NavLink isActive={this.isActiveFunc.bind(this)} className={classes.subLink} to={{ pathname: "/admin/users" }}> 
     <ListItem button className={classes.nested}> 
      <ListItemText inset primary="Users" /> 
     </ListItem> 
    </NavLink> 

이 링크가 활성화되면 나는 ListItemText 다르게 스타일 수 싶어요. 이를 위해 나는 activePath 상태가 to 경로와 일치하면 내가 스타일을 설정할 수 있습니다 Whereafter 다음과 같은 논리

isActiveFunc = (match, location) => { 
    this.setState({activePath: match.path}); 
    return match 
    }; 

을 적용했습니다. 그러나 이렇게하면 오류가 발생합니다.

TypeError: Cannot read property 'path' of null

답변

0

ListItemText의 스타일을 얼마나 조절 했습니까?

<NavLink className={classes.subLink} to={{ pathname: "/admin/users" }}> 
    <ListItem button className={classes.nested}> 
     <ListItemText inset primary="Users" isActive={props.match.path == "/admin/users"} /> 
    </ListItem> 
</NavLink> 
+0

감사 :이 활성화 된 경우?

<NavLink className={classes.subLink} to={{ pathname: "/admin/users" }}> <ListItem button className={classes.nested}> <ListItemText inset primary="Users" passDownAClassName={props.match.path == "/admin/users" ? 'active-class' : 'inactive-class'} /> </ListItem> </NavLink> 

또는 당신은 그것을 소품이나 클래스 이름을 전달할 수 있습니다. 문제는 props.match.path가 정의되지 않은 것 같습니다. – user3642173

관련 문제