稳定的 React Native App 突然出现白屏
Stable React Native App Suddenly Showing White Screen
过去一个月我一直在使用 React Native 构建的应用程序突然停止工作并开始在 运行 react-native run-ios
上显示白屏。有时模拟器会显示一个黄色框,上面写着 Possible Unhandled Promise Rejection
,但除此之外,我看不到任何错误。我正在处理的分支和 master 分支都出现了这个问题,master 分支在上次提交时绝对稳定。
这些是我目前拥有的依赖项:
"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
我相信我找到了解决方案。 redux-persist
依赖项发生错误。
在我的 Redux 减速器中,我遇到了这种情况:
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
重新加载了我的模拟器,一切似乎又恢复正常了! 我不完全确定为什么这样可以解决问题,所以如果有人有任何想法,请随时分享。
过去一个月我一直在使用 React Native 构建的应用程序突然停止工作并开始在 运行 react-native run-ios
上显示白屏。有时模拟器会显示一个黄色框,上面写着 Possible Unhandled Promise Rejection
,但除此之外,我看不到任何错误。我正在处理的分支和 master 分支都出现了这个问题,master 分支在上次提交时绝对稳定。
这些是我目前拥有的依赖项:
"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
我相信我找到了解决方案。 redux-persist
依赖项发生错误。
在我的 Redux 减速器中,我遇到了这种情况:
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
重新加载了我的模拟器,一切似乎又恢复正常了! 我不完全确定为什么这样可以解决问题,所以如果有人有任何想法,请随时分享。