- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我一直在 React Native Expo 中构建应用程序。首先,我简单地通过将登录异步代码复制并粘贴到 Login.js 并将 this.login() 添加到 componentWillMount 来合并 Facebook 登录。这有效 - Facebook 登录弹出窗口显示为应用程序加载。我能够通过成功消息登录到我的 FB 帐户。
但是,一旦我尝试合并 Firebase,特别是在我的 Home.js 页面和 Login.js 页面之间传输代码的某个地方,我就开始在页面加载时出现这个白屏。
终端没有错误;除了 FacebookAppID 和 facebookDisplayName 不属于 app.json 的消息。
我尝试在 CSS 中添加不同的背景颜色(黑色),这有效,但仍然没有内容。
从 app.json 中删除 FacebookAppID 和 facebookDisplayName,但什么也没做。
将我的 App Key 更新为正确的(我遗漏了最后一个数字)。
多次重新启动终端、expo web 终端 x code 和 metro builder。
更新了我的代码,以便我的 Screens 目录中的每个文件在底部都有 { connect } 和 { login } 导入以及 functionMapStateToProps 和 export 默认连接语句。
我尝试将 TabNavigator.js 中的选项卡更改为登录页面,并使用“登录”作为初始路由名称,但出现错误,提示 Login.js 不是 React 组件。
应该出现在任何其他页面之前的第一个页面是 Facebook 登录...所以看起来问题就在那里。
App.js
import React from 'react';
import Login from './screens/Login';
import reducers from './redux/reducers';
import thunkMiddleware from 'redux-thunk';
import { Provider } from 'react-redux';
import { createStore, applyMiddleware } from 'redux';
const middleware = applyMiddleware(thunkMiddleware);
const store = createStore(reducers, middleware);
export default class App extends React.Component {
render() {
return (
<Provider store={store}>
<Login/>
</Provider>
);
}
}
------ App.js 结束------------
登录.js
import React from 'react';
import styles from '../styles'
import RootNavigator from '../navigation/RootNavigator';
import { connect } from 'react-redux';
import { login } from '../redux/actions';
import * as firebase from 'firebase';
import firebaseConfig from '../config/firebase.js';
firebase.initializeApp(firebaseConfig)
import {
Text,
View,
TouchableOpacity
} from 'react-native';
class Login extends React.Component
state = {}
componentWillMount() {
firebase.auth().onAuthStateChanged((user) => {
if (user != null) {
this.props.dispatch(login(true))
console.log("We are authenticated now!" + JSON.stringify(user));
}
});
}
login = async () => {
const { type, token } = await Expo.Facebook.logInWithReadPermissionsAsync('YourAppKeyGoesHere', {
permissions: ['public_profile'],
});
if (type === 'success') {
// Build Firebase credential with the Facebook access token.
const credential = await firebase.auth.FacebookAuthProvider.credential(token);
// Sign in with credential from the Facebook user.
firebase.auth().signInWithCredential(credential).catch((error) => {
// Handle Errors here.
Alert.alert("Try Again")
});
}
}
render() {
if(this.props.loggedIn){
return (
<RootNavigator/>
)
} else {
return (
<View style={styles.container}>
<TouchableOpacity onPress={this.login.bind(this)}>
<Text>{this.props.loggedIn}</Text>
</TouchableOpacity>
</View>
)
}
}
}
function mapStateToProps(state) {
return {
loggedIn: state.loggedIn
};
}
export default connect(mapStateToProps)(Login);
--------Login.js结束------------
首页.js
import React from 'react';
import styles from '../styles';
import { connect } from 'react-redux';
import { login } from '../redux/actions';
import {
Text,
View,
Alert
} from 'react-native';
class Home extends React.Component {
state = {}
componentWillMount() {
}
render() {
return (
<View>
<Text>Home</Text>
</View>
)
}
}
function mapStateToProps(state) {
return {
loggedIn: state.loggedIn
};
}
export default connect(mapStateToProps)(Home);
-----Home.js 结束------
redux 文件夹
Action .js
export function login(){
return function(dispatch){
dispatch({ type: 'LOGIN', payload: input });
}
}
----actions.js结束----
reducers.js
export default reducers = (state = {
loggedIn: false,
}, action) => {
switch (action.type) {
case 'LOGIN': {
return { ...state, loggedIn: action.payload }
}
}
return state;
}
------reducers.js 结束 -----------redux 文件夹结束 ------
-----导航文件夹( react 导航)---------根导航器.js---
import React from 'react';
import TabNavigator from './TabNavigator';
import {
createDrawerNavigator,
createStackNavigator,
createBottomTabNavigator,
createAppContainer,
} from 'react-navigation';
const AppNavigator = createStackNavigator(
{
Main: {
screen: TabNavigator,
},
}
);
const AppContainer = createAppContainer(AppNavigator);
export default class RootNavigator extends React.Component {
render() {
return <AppContainer/>;
}
}
----RootNavigator.js 结束-----
----TabNavigator.js----
import React from 'react';
import Home from '../screens/Home';
import Profile from '../screens/Profile';
import Matches from '../screens/Matches';
import {
createDrawerNavigator,
createStackNavigator,
createBottomTabNavigator,
createAppContainer,
createMaterialTopTabNavigator,
} from 'react-navigation';
export default createBottomTabNavigator(
{
Profile: {
screen: Profile,
navigationOptions: {
tabBarLabel: 'Profile',
},
},
Home: {
screen: Home,
navigationOptions: {
tabBarLabel: 'Home',
}
},
Matches: {
screen: Matches,
navigationOptions: {
tabBarLabel: 'Matches',
},
},
},
{
navigationOptions: {
header: null
},
tabBarPosition: 'top',
initialRouteName: 'Home',
animationEnabled: true,
swipeEnabled: true,
tabBarOptions: {
style: {
height: 75,
backgroundColor: 'blue'
},
}
}
);
-----TabNavigator结束----
最佳答案
你试过远程js调试吗?您可以做的是,远程调试 JS。 https://developers.google.com/web/tools/chrome-devtools/remote-debugging/
尝试 console.log("hi");
当您的应用程序的第一个组件安装时。尝试在登录组件挂载时将其添加到登录页面。这将帮助您调试 js 调试器中列出的看不见的错误。只需检查这些错误并跟进即可!
一切顺利!
关于firebase - 如何在没有错误提示的情况下调试 RN Expo 应用程序中的白屏页面(无内容显示),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54740029/
我是OpenGL新手,我想用我的着色器在屏幕上绘制一个简单的三角形。我设置了缓冲区并编写了一个着色器,但是它似乎不起作用。它显示白色屏幕,我尝试使用glGenBuffer更改glCreateBuffe
我现在真的很沮丧,JS 从来不适合我。我不知道我这次犯了什么小错误,如果你指出的话,我将不胜感激。我不需要动画或任何东西,如果有人告诉我错误,我会很高兴。 window.onload = functi
我正在开发一个 phonegap 应用程序,我使用了一个多页面模板,如 page1.html、page2.html。每个页面都会访问服务器并呈现输出并将其显示在 ListView 中。所以问题是如果我
我有一台 iPad 2,我正在 viewDidLoad 中测试此代码,并调用此代码 -(void)stillCameraStart{ GPUImageStillCamera *stillCam=[[G
这个问题不太可能帮助任何 future 的访问者;它只与一个小的地理区域、一个特定的时间点或一个非常狭窄的情况有关,这些情况并不普遍适用于互联网的全局受众。为了帮助使这个问题更广泛地适用,visit
将 Android 模拟器更新到版本 27.0.1 后,出现白屏,模拟器甚至无法启动。 这是行为的截图: 屏幕上没有启动 Logo 或任何内容。 这是模拟器设置的屏幕截图: 所有模拟器都无法正常工作,
我想在我的游戏中实现网络功能,但是我有一个很大的问题。当我尝试创建 JFrame 组件时,执行网络代码后,它总是显示为白屏。虽然网络可以工作,但我无法以任何方式让用户界面工作。这是网络代码: pack
我收到有关此问题的错误报告:https://github.com/gatsbyjs/gatsby/issues/25920 但是 Gatsby 的人们似乎太忙了,无法回答,因此也许其他人也知道这个问题
我试图让 Magento 从我正在使用的主题的 adminHtml 而不是默认的核心位置加载核心文件,并将以下代码添加到我的扩展中: fort
当我在处理数据后尝试使用 Laravel Redirect 类重定向我的用户时,我目前遇到白屏死机。如果我使用 native php-function header("location ..."),应
我正在使用 react 路由器 dom 的仪表板工作。我有一个结构,即 Auth 页面和仪表板页面。当我从登录导航到 mainPages 并尝试在 DashboardContainer 中选择一个导航
我决定使用 3D WebGL 查看器来放置我的网站,但我有一个小问题。 一切正常,我可以移动我的对象并看到它,但是当我加载页面时,在单击时移动鼠标之前屏幕是黑色的。所以这对我来说不是问题,但对访问我网
我正在使用 CF 10,我试图找出为什么我无法得到一个错误来告诉我出了什么问题。 #session
Webkit 仍然有一些问题。在整理我昨天早上的错误后,我遇到了一个全新的线索,从 113 到直接崩溃(对于 iOS 开发人员来说真的很新,接受过 C++ 的正式培训,非常生疏哈哈)。 我终于得到了一
在我提出我的问题之前,我想提一下我尝试寻找解决方案 here和 here . 我正在创建一个使用 native UIWebView 的混合应用程序用于呈现响应式设计的 Web 应用程序。以下是问题描述
我在使用 libGDX 时遇到问题,当我在使用后退按钮退出后恢复应用程序时,我只看到一个白屏。 实际的应用程序运行,接受触摸输入并播放声音,但屏幕只是白色。 我读到过保持对纹理的静态引用可能会导致这个
我的页面中有很多链接,每个链接都有两个属性,格式和源。 它点击了什么我得到它的 2 attr 并像这样在 js 中制作 HTML。 $(".play").live('click',function(
我在 PHP 从数据库获取文本数据时遇到问题。有问题的数据是我从 share.mapbbcode.org 导出的 JSON 运行路线,因此我可以将它们绘制在 OSM map 上以进行个人跟踪。 我正在
当我点击应用程序的运行按钮时, the simulator just shows a white screen 但是应该有一个显示“Hello World”的按钮。另外,对于标签, an error
问题:启动时,GLWindow 仅显示白屏,光标显示加载圆圈,表示仍在加载某些内容。不久之后窗口显示“无响应”。 我已经尝试降级到 openGL 3.3,并且很乐意为此提供帮助,但问题仍然存在。 大家
我是一名优秀的程序员,十分优秀!