【问题标题】:Stable React Native App Suddenly Showing White Screen稳定的 React Native App 突然出现白屏
【发布时间】:2018-06-23 18:32:04
【问题描述】:

上个月我使用 react native 构建的一个应用程序突然停止工作,并在运行 react-native run-ios 时开始显示白屏。有时模拟器会显示一个黄色框,上面写着Possible Unhandled Promise Rejection,但除此之外,我看不到任何错误。我正在处理的分支和主分支都出现了这个问题,主分支在最后一次提交时肯定是稳定的。

这些是我目前拥有的依赖项:

"axios": "^0.17.1",
"base-64": "^0.1.0",
"firebase": "^4.8.1",
"query-string": "^5.0.1",
"react": "16.0.0",
"react-native": "0.51.0",
"react-native-dotenv": "^0.1.0",
"react-native-linear-gradient": "^2.4.0",
"react-navigation": "^1.0.0-beta.22",
"react-redux": "^5.0.6",
"redux": "^3.7.2",
"redux-persist": "^5.4.0",
"redux-thunk": "^2.2.0"

有人对如何克服这个障碍有任何建议吗?或者任何有助于调试的工具?如果有人能提供任何帮助,我将不胜感激。

Screenshot of JS Debugger Error

【问题讨论】:

  • 您是否尝试检查错误日志? JS调试器日志?我怀疑在捆绑应用程序时出现了问题。
  • @AnandGhaywankar 我附上了我收到的 JS 调试器错误的图像,但它似乎不知从何而来。如何查看您提到的其他错误日志?
  • 我想你正在使用 Mac。要打开开发人员选项,请单击“Command + D”,然后从那里启用远程调试。打开控制台,您将在那里看到日志。在此处更新以查看我们是否可以提供帮助
  • 根据截图,很明显是JS错误。似乎没有正确处理依赖项。检查你的“Auth”声明。它显示未定义。
  • @DanielReina 有什么建议可以找到错误指向的 Auth 声明吗? (它说“exports.default”而不是我的文件之一)。 JS 错误让我感到惊讶,因为我什至在一个月内未更改的代码的稳定主分支上也得到了它。

标签: ios xcode react-native react-redux redux-persist


【解决方案1】:

我相信我找到了解决方案。 redux-persist 依赖项发生错误。

在我的 Redux reducer 中,我遇到了这种情况:

export default (state = INITIAL_STATE, action) => {
switch (action.type) {

    case 'persist/REHYDRATE': {
        if (action.payload.auth) {
            const { access_token, refresh_token, expiration } = action.payload.auth;
            return {
                ...state,
                access_token: access_token,
                refresh_token: refresh_token,
                expiration: expiration,
            };
        } return state;
    }

    // other cases
}

但由于某种原因,补液没有有效载荷(因此出现错误Cannot read property "Auth" of undefined)。

我注释掉了这个案例,使用cmd-R 重新加载了我的模拟器,一切似乎又恢复了! 我不完全确定为什么这可以解决问题,所以如果有人有任何想法,请务必随时分享。

【讨论】:

  • 这其实不是解决办法。这应该是问题所在,解决方案将是“出于某种原因,没有有效载荷”的解释。我想我知道是什么原因造成的,但要确定我需要看看你的减速器。那是减速机的最顶端吗?你在处理switch 语句中的default 吗?
  • @DanielReina 是的,最后一个减速机案例是default: return state;。有什么想法吗?
猜你喜欢
  • 1970-01-01
  • 2017-09-27
  • 1970-01-01
  • 1970-01-01
  • 2021-05-28
  • 1970-01-01
  • 2021-02-10
  • 1970-01-01
相关资源
最近更新 更多