首页 文章

当将expo从开发模式切换到 生产环境 时,我的RSAA调用变得无效,为什么?

提问于
浏览
0

背景

我正在使用世博会在我的Android手机上查看我的反应本机应用程序 . 我已经实现了应用程序从中检索数据的节点服务器 . 要检索数据,我使用库 redux-api-middleware 并将其存储在redux存储中 .

我之前使用过常规反应应用程序,但没有反应本机 .

问题

当我在展会中将应用程序从开发模式切换到 生产环境 模式时,我对服务器的调用不再有效 . 我得到以下响应,而不是像开发模式中的数据 .

Object {
   "error": true,
   "payload": [InvalidRSAA: Invalid RSAA],
   "type": Symbol {
     "_k": "Symbol(REQUEST_TEST_REQ)_l.b74uhq9lvf",
   },
}

我的当前通话

import { RSAA } from 'redux-api-middleware';
import { NODE_API_URL } from 'react-native-dotenv';


export const REQUEST_TEST_REQ = Symbol('REQUEST_TEST_REQ');
export const REQUEST_TEST_SUC = Symbol('REQUEST_TEST_SUC');
export const REQUEST_TEST_FAIL = Symbol('REQUEST_TEST_FAIL');

const requestSomeDataFromTheServer = () => {
    return {
        [RSAA]: {
            endpoint: `${NODE_API_URL}/api/test`,
            method: 'POST',
            headers: {
                'Accept': 'application/json',
                'Content-Type': 'application/json'
            },
            types: [
                REQUEST_TEST_REQ,
                REQUEST_TEST_SUC,
                REQUEST_TEST_FAIL
            ]
        }
    }
};

export { requestSomeDataFromTheServer };

问题

所以我遵循RSAA请求的规则,但是一旦发出请求,我就会看到这个失败 . 它绝对不是我的节点服务器,因为它在开发模式下工作 . 有人可以为我解释这个问题吗?

1 回答

  • 1

    符号在 生产环境 模式下创建无效请求

    我认为这可能是 生产环境 中的提取问题,所以我首先添加了一个polyfill,但这没有帮助 . 这让我想到了把所有东西都带回基础,所以我把符号变成了字符串 .

    export const REQUEST_TEST_REQ = 'REQUEST_TEST_REQ';
    export const REQUEST_TEST_SUC = 'REQUEST_TEST_SUC';
    export const REQUEST_TEST_FAIL = 'REQUEST_TEST_FAIL';
    

    通过将这些更改回普通字符串,请求是有效的,因此我的问题得以解决 .

    我仍然不知道为什么符号在 生产环境 模式中会中断,因为它们在开发中工作正常 . 我也使用babel polyfill使它们“安全”使用 .

    如果有人能够清除这个神秘的其余部分那将是伟大的 .

相关问题