React使用axios的坑:每次都要请求两次,而且前后端相同配置
项目:react-antd-axios
接口会调用两次,但是页面中并没有写调用两次的方法,componentDidMount中值调用了一次,反复查看没有问题,axios中封装的api也没有出现问题。
我的项目解决:
在包裹着content的路由页面,也就是主页面中componentDidMount写了方法,但是并没有调用api
componentDidMount() {
this.getPath();
}
getPath() {
// 获取当前路径
const pathname = this.props.location.pathname;
//获取当前所在的目录层级
const rank = pathname.split("/");
//rank = ["","policy-engine","nas-client"]
console.log(rank);
switch (rank.length) {
case 2: //一级目录
this.setState({
selectedKeys: [pathname]
});
break;
case 3: //二级目录,要展开一个subMenu
this.setState({
selectedKeys: [pathname],
openKeys: [rank.slice(0, 2).join("/")]
});
break;
case 4: //三级目录,要展开两个subMenu
this.setState({
selectedKeys: [pathname],
openKeys: [rank.slice(0, 2).join("/"), rank.slice(0, 3).join("/")]
});
break;
}
}
主要是
componentDidMount() {
this.getPath();
}这一部分写了调用函数
解决方法
componentWillMount() {
this.getPath();
}
写在componentWillMount就能解决。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。