我想根据路径更改页脚的className,就像React-Router在内部所做的那样。我需要(a)在parent(app)中创建一个状态,其中路由器来自交换机中的路径,然后将其传递,或者(b)读取child(footer)中的路径,并将其直接内联到className三元组中
谢谢
答案 0 :(得分:0)
编辑:window.location.pathname起作用(我必须做错什么,因为它只有在刷新根目录后才给出url),用于条件className:必须对每个“ / page”检查都使用window.location.pathname。
className={
window.location.pathname === "/chats"
? "chats_large2"
: window.location.pathname === "/events"
? "chats_large2"
: "chats_large"
}
我也可以在相同的div或img中创建onclick = {this.handleClick}和
constructor(props) {
super(props);
this.state = { page: "" };
}
handleClick = () => {
this.setState({ page: "/chats" });
};
handleClick2 = () => {
this.setState({ page: "/planner" });
};
上面的类组件中的。
我还在脚注图标周围放置了<Route render={location => (<Link to=""><div></div></Link>)}/>
,以使Router进入新状态和window.location.pathname时,可以重新显示页脚。location.pathname可以读取最新状态(有时,它也读取最新状态为路径,不一定是最新的路由器状态。