2017-11-15 19 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パスに一致した場合、私はスタイルを設定することができますしかる後、次のロジック

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

関連する問題