我如何从 class 而不是组件调度 redux 操作
How do i dispatch a redux action from class and not component
import axios from "axios";
class ApiCaller {
CallApi = (SERVICE_URL, data) => {
return new Promise((resolve, reject) => {
axios.post(SERVICE_URL, data).then(function (response) {
var data = response.data
if (data.status) {
data = data.data
resolve(data)
} else {
if (data.isExpired != undefined && data.isExpired) {
console.log('here in expired')
}
reject(data.message)
}
}).catch(function (error) {
console.log(error);
reject(error)
});
})
}
}
export default new ApiCaller();
// export default connect()(new ApiCaller());
我在这里调用整个应用程序中的所有网络服务
data.isExpired 是一个布尔值,服务器告诉我提供的 jwt 令牌已过期,我需要从 redux 中删除用户信息并导航到再次登录我已经使用了将近 50 多个地方,我无法承受它来改变在所有这些地方
我如何从这里发送用户注销?
import { logoutUser } from "app/redux/actions/UserActions";
const mapStateToProps = state => ({
logoutUser: PropTypes.func.isRequired
});
export default withRouter(connect(mapStateToProps, { logoutUser })(ApiCaller));
这可能是解决方案,为此我需要扩展组件,它会破坏其他地方的 ApiCaller 实现
我也尝试过功能组件,但没有帮助,我需要从我的 ApiCaller 注销,所以我不需要在每个视图上处理 jwt 过期异常
我是 React Redux 的新手
任何人请
我认为这是一个很好的示例,说明您可以在哪里使用 Redux Thunks。
// this is an action that can be dispatched to call the api
function callApi() {
return (dispatch) => {
apiCaller.CallApi()
.then(() => {
dispatch(callApiSuccess()); // success action defined elsewhere
})
.catch(() => {
dispatch(callApiError()); // error action defined elsewhere
});
}
}
import axios from "axios";
class ApiCaller {
CallApi = (SERVICE_URL, data) => {
return new Promise((resolve, reject) => {
axios.post(SERVICE_URL, data).then(function (response) {
var data = response.data
if (data.status) {
data = data.data
resolve(data)
} else {
if (data.isExpired != undefined && data.isExpired) {
console.log('here in expired')
}
reject(data.message)
}
}).catch(function (error) {
console.log(error);
reject(error)
});
})
}
}
export default new ApiCaller();
// export default connect()(new ApiCaller());
我在这里调用整个应用程序中的所有网络服务 data.isExpired 是一个布尔值,服务器告诉我提供的 jwt 令牌已过期,我需要从 redux 中删除用户信息并导航到再次登录我已经使用了将近 50 多个地方,我无法承受它来改变在所有这些地方
我如何从这里发送用户注销?
import { logoutUser } from "app/redux/actions/UserActions";
const mapStateToProps = state => ({
logoutUser: PropTypes.func.isRequired
});
export default withRouter(connect(mapStateToProps, { logoutUser })(ApiCaller));
这可能是解决方案,为此我需要扩展组件,它会破坏其他地方的 ApiCaller 实现
我也尝试过功能组件,但没有帮助,我需要从我的 ApiCaller 注销,所以我不需要在每个视图上处理 jwt 过期异常 我是 React Redux 的新手
任何人请
我认为这是一个很好的示例,说明您可以在哪里使用 Redux Thunks。
// this is an action that can be dispatched to call the api
function callApi() {
return (dispatch) => {
apiCaller.CallApi()
.then(() => {
dispatch(callApiSuccess()); // success action defined elsewhere
})
.catch(() => {
dispatch(callApiError()); // error action defined elsewhere
});
}
}