Javascript 反应:axios.interceptors在hoc中不工作
hoc.js中的axios.interceptors适用于App.js中的clicked方法,但不适用于App.js中的componentWillMount或componentDidMount。我怎样才能修好它 App.jsJavascript 反应: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
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;
});
}