react-native - 从 API 获取错误地在 Android 上返回旧的 "cached"数据,在 iOS 上返回最新数据

标签 react-native redux axios expo

我正在使用 React-Native 开发 iOS 和 Android 应用程序。一切正常,直到我在 Android 上的一个 Axios 响应给了我旧数据而不是最新的服务器数据。在 iOS 上完全没有问题。这是对 HTTPS 端点的简单 GET 请求,由 Nginx 服务器后面的 Java/Spring Boot 后端提供服务。

我使用的是 Expo SDK 31(最新),Axios 0.18 和 Redux 4.0.1。另外,我正在使用这个 repo 中的 redux-axios-middleware:https://github.com/svrcekmichal/redux-axios-middleware .奇怪的是,无论我做什么调试,无论是查看设备上的网络检查器还是通过拦截器记录 Axios 响应,它都确实为我提供了 Android 上的这些旧数据。在物理设备和模拟器中。无处可见错误。真的卡在这上面了!应用程序中的其他响应,在 Android 上,以完全相同的方式使用 Axios、Redux 和这个中间件,工作得很好。

这是 reducer ,放大了给出问题的 Action :

import { TaskActionTypes } from '../actions/ActionTypes';

export default function taskReducer(state = {}, action) {
  switch (action.type) {
     ...
     case TaskActionTypes.GET_TASK_DETAILS:
       return { ...state, loading: true };
     case TaskActionTypes.GET_TASK_DETAILS_SUCCESS:
       return { ...state, loading: false, task: action.payload.data };
     case TaskActionTypes.GET_TASK_DETAILS_FAIL:
       return {
         ...state,
         loading: false,
         error: "Error while fetching task details"
       };
     ...
}

这是 Action 本身:

export function getTaskDetails(task) {
  return {
    type: TaskActionTypes.GET_TASK_DETAILS,
    payload: {
      request: {
        url: task._links.self.href,
        method: "get",
      }
    }
  };
}

预期在所有其他请求中看到和看到:最新数据。已见:旧的,似乎是缓存数据。但这对我来说完全是猜测,因为没有错误信息,而且一切都像 iOS 上的魅力一样。

最佳答案

错误已解决。这是因为缺少使用 Expo MapView 组件的 Google Maps API key 。在 iOS 上,这不是必需的,因为它使用 Apple map 。我在这个项目中完全删除了 Expo,因为它让我在调试时很头疼!

关于react-native - 从 API 获取错误地在 Android 上返回旧的 "cached"数据,在 iOS 上返回最新数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53969305/

相关文章:

reactjs - 将参数传递给 `connect()` 中的 mapStateToProps

javascript - vuejs 获取所选类的值

ajax - Nuxtjs Axios 在 Vuex 模块 CORS 错误

reactjs - 如何从 React 组件 Redux Toolkit 中的 createAsyncThunk 获取结果

javascript - react 级联渲染

javascript - 在 vue.js 小部件中打开多个选项卡时找出事件选项卡的方法

authentication - 如何使用 REST API 通过 OAuth2 和 React Native 进行身份验证?

reactjs - 在 View 列表上 react native 无限循环的弹跳动画?

ios - react-navigation-fluid-transitions 共享图像闪烁

React-Native Camera 没有在 android 中打开