Я хотел бы создать упаковочный компонент более высокого порядка для других компонентов, который перехватывает ошибки и отображает сообщение. Axios имеет встроенные перехватчики, которые облегчают прохождение через componentWillMount
и componentWillUnmount
при рендеринге модального режима, если error: true
. У меня возникли проблемы с написанием его на чистом Typescript, и мне было интересно, есть ли способ сделать это, управляя состоянием ошибки через диспетчер диспетчеризации, который перехватывает ошибки.
componentWillMount() {
this.reqInterceptor = axios.interceptors.request.use(req => {
this.setState({ error: null })
return req
})
this.resInterceptor = axios.interceptors.response.use(
res => res,
error => {
this.setState({ error: error })
}
)
}
componentWillUnmount() {
axios.interceptors.request.eject(this.reqInterceptor)
axios.interceptors.response.eject(this.resInterceptor)
}
пример упаковки
export default connect(
mapStateToProps,
mapDispatchToProps
)(withErrorHandler(WrappedContainer, axios))