Javascript 反应:axios.interceptors在hoc中不工作

Javascript 反应:axios.interceptors在hoc中不工作,javascript,reactjs,axios,interceptor,react-hoc,Javascript,Reactjs,Axios,Interceptor,React Hoc,hoc.js中的axios.interceptors适用于App.js中的clicked方法,但不适用于App.js中的componentWillMount或componentDidMount。我怎样才能修好它 App.js class App extends Component { componentDidMount() { axios.get('https://wrongaddress') .then(response => { cons

hoc.js中的axios.interceptors适用于App.js中的clicked方法,但不适用于App.js中的componentWillMount或componentDidMount。我怎样才能修好它

App.js

class App extends Component {
  componentDidMount() {
    axios.get('https://wrongaddress')
        .then(response => {
          console.log(response);
        });
  }

  clicked() {
      axios.get('https://wrongaddress')
          .then(response => {
              console.log(response);
          });
  }

  render() {
    return (
        <button onClick={this.clicked}>btn</button>
    );
  }
}
export default withErrorHandler(App, axios);
类应用程序扩展组件{
componentDidMount(){
axios.get()https://wrongaddress')
。然后(响应=>{
控制台日志(响应);
});
}
点击(){
axios.get()https://wrongaddress')
。然后(响应=>{
控制台日志(响应);
});
}
render(){
返回(
btn
);
}
}
导出默认处理程序(应用程序、axios);
hoc/withErrorHandler.js

const withErrorHandler = ( WrappedComponent, axios ) => {
    return class extends Component {
        componentDidMount() {
            axios.interceptors.request.use(req => {
                console.log(req);
                return req;
            });
        }

        render() {
            return (
                <WrappedComponent {...this.props} />
            );
        }
    }
};
const withErrorHandler=(WrappedComponent,axios)=>{
返回类扩展组件{
componentDidMount(){
axios.interceptors.request.use(req=>{
控制台日志(req);
返回请求;
});
}
render(){
返回(
);
}
}
};

在第一次渲染之后,在hoc中添加拦截器。并且您在componentWillMount中使用axios。componentWillMount在第一次渲染之前

我建议在应用程序中调用componentDidMount的axios。无论如何,建议将所有副作用(如负载数据)放入componentDidMount。检查此处的文档:

您还可以将HOC中的拦截器处理移动到componentWillMount

const withErrorHandler = ( WrappedComponent, axios ) => {
    return class extends Component {
        componentWillMount() {
            axios.interceptors.request.use(req => {
                console.log(req);
                return req;
            });
        }

部件将进行润滑。
const withErrorHandler = ( WrappedComponent, axios ) => {
    return class extends Component {
        componentWillMount() {
            axios.interceptors.request.use(req => {
                console.log(req);
                return req;
            });
        }