- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
{
"expo": {
"name": "Csearch",
"slug": "Csearch",
"version": "1.0.0",
"orientation": "portrait",
"sdkVersion": "38.0.0",
"icon": "./assets/icon.png",
"splash": {
"image": "./assets/splash.png",
"resizeMode": "contain",
"backgroundColor": "#2e64ae"
},
"updates": {
"fallbackToCacheTimeout": 0
},
"assetBundlePatterns": ["**/*"],
"android": {
"package": "com.geekonomy.Csearch",
"versionCode": 1
},
"ios": {
"supportsTablet": true
},
"web": {
"favicon": "./assets/favicon.png"
}
}
}
package.json
{
"main": "node_modules/expo/AppEntry.js",
"scripts": {
"start": "expo start",
"android": "expo start --android",
"ios": "expo start --ios",
"web": "expo start --web",
"eject": "expo eject"
},
"dependencies": {
"@react-native-community/masked-view": "0.1.10",
"@react-navigation/drawer": "^5.8.6",
"@react-navigation/native": "^5.7.1",
"@react-navigation/stack": "^5.7.1",
"expo": "~38.0.8",
"expo-status-bar": "^1.0.2",
"firebase": "^7.17.1",
"native-base": "^2.13.13",
"react": "~16.11.0",
"react-dom": "~16.11.0",
"react-native": "https://github.com/expo/react-native/archive/sdk-38.0.2.tar.gz",
"react-native-easy-grid": "^0.2.2",
"react-native-elements": "^2.0.4",
"react-native-gesture-handler": "~1.6.0",
"react-native-maps": "^0.27.1",
"react-native-reanimated": "~1.9.0",
"react-native-safe-area-context": "~3.0.7",
"react-native-screens": "~2.9.0",
"react-native-web": "~0.11.7",
"react-router-native": "^5.2.0"
},
"devDependencies": {
"@babel/core": "^7.8.6",
"babel-preset-expo": "~8.1.0"
},
"private": true
}
App.js
export default class App extends React.Component {
constructor(props) {
super(props);
this.state = {
user: {},
isReady: false,
};
}
authListener() {
fire.auth().onAuthStateChanged((user) => {
if (user) {
this.setState({ user });
} else {
this.setState({ user: null });
}
});
}
async componentDidMount() {
await Font.loadAsync({
Roboto: require("native-base/Fonts/Roboto.ttf"),
Roboto_medium: require("native-base/Fonts/Roboto_medium.ttf"),
...Ionicons.font,
});
this.setState({ isReady: true }, () => {
this.authListener();
});
}
render() {
if (!this.state.isReady) {
return <AppLoading />;
}
return (
<NativeRouter>
<BackButton />
<Switch>
<Route exact path="/">
{this.state.user ? <DashBoard /> : <Login />}
</Route>
<Route path="/criminalDetails" component={ShowSelectedCriminals}>
{/* {this.state.user ? <ShowSelectedCriminals /> : <Login />} */}
</Route>
<Route path="/gangDetails" component={SelectedGangDetails}>
{/* {this.state.user ? <SelectedGangDetails /> : <Login />} */}
</Route>
<Route path="/gangCriminalDetails" component={GangCriminalDetails}>
{/* {this.state.user ? <GangCriminalDetails /> : <Login />} */}
</Route>
<Route path="/ShowGangs">
{this.state.user ? <ShowGangs /> : <Login />}
</Route>
<Route path="/Showdata">
{this.state.user ? <Showdata /> : <Login />}
</Route>
</Switch>
</NativeRouter>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
},
});
Login.js
class Login extends Component {
constructor(props) {
super(props);
this.login = this.login.bind(this);
this.state = {
email: "",
password: "",
};
}
login() {
fire
.auth()
.signInWithEmailAndPassword(this.state.email, this.state.password)
.then((u) => {
console.log(u);
})
.catch((error) => {
console.log(error);
});
}
render() {
return (
<View style={styles.container}>
{/* <Image
style={{
height: 25,
width: 25,
}}
source={require("../assets/login.png")}
/> */}
<Item floatingLabel>
<Label>Email</Label>
<Input onChangeText={(email) => this.setState({ email })} />
</Item>
<Item floatingLabel last>
<Label>Password</Label>
<Input
secureTextEntry={true}
onChangeText={(password) => this.setState({ password })}
placeholder="Password"
/>
</Item>
<Item
style={{
marginTop: 10,
marginBottom: 10,
justifyContent: "center",
alignItems: "center",
borderBottomColor: "white",
}}
>
<Button info onPress={this.login}>
<Text> Login </Text>
</Button>
</Item>
</View>
);
}
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: "#fff",
alignItems: "center",
justifyContent: "center",
backgroundColor: "#2e64ae",
},
});
export default Login;
DashBoard.js
const Drawer = createDrawerNavigator();
const DashBoardStack = createStackNavigator();
const ShowGangsStack = createStackNavigator();
const ShowCriminalsStack = createStackNavigator();
const DashBoardStackScreen = ({ navigation }) => (
<DashBoardStack.Navigator
screenOptions={{
headerStyle: {
backgroundColor: "#2e64ae",
},
headerTintColor: "#fff",
headerTitleStyle: {
fontWeight: "bold",
},
}}
>
<DashBoardStack.Screen
name="DashBoard"
component={InitialDb}
options={{
title: "CSearch",
headerLeft: () => (
<TouchableOpacity onPress={() => navigation.openDrawer()}>
<Entypo name="menu" size={24} color="black" />
</TouchableOpacity>
),
headerRight: () => (
<TouchableOpacity onPress={() => fire.auth().signOut()}>
<AntDesign name="logout" size={24} color="black" />
</TouchableOpacity>
),
}}
/>
</DashBoardStack.Navigator>
);
const ShowGangsStackStackScreen = ({ navigation }) => (
<ShowGangsStack.Navigator
screenOptions={{
headerStyle: {
backgroundColor: "#2e64ae",
},
headerTintColor: "#fff",
headerTitleStyle: {
fontWeight: "bold",
},
}}
>
<ShowGangsStack.Screen
name="ShowGangs"
component={ShowGangs}
options={{
title: "CSearch",
headerLeft: () => (
<TouchableOpacity onPress={() => navigation.openDrawer()}>
<Entypo name="menu" size={24} color="black" />
</TouchableOpacity>
),
headerRight: () => (
<TouchableOpacity onPress={() => fire.auth().signOut()}>
<AntDesign name="logout" size={24} color="black" />
</TouchableOpacity>
),
}}
/>
</ShowGangsStack.Navigator>
);
const ShowCriminalsStackScreen = ({ navigation }) => (
<ShowCriminalsStack.Navigator
screenOptions={{
headerStyle: {
backgroundColor: "#2e64ae",
},
headerTintColor: "#fff",
headerTitleStyle: {
fontWeight: "bold",
},
}}
>
<ShowCriminalsStack.Screen
name="ShowCriminals"
component={ShowData}
options={{
title: "CSearch",
headerLeft: () => (
<TouchableOpacity onPress={() => navigation.openDrawer()}>
<Entypo name="menu" size={24} color="black" />
</TouchableOpacity>
),
headerRight: () => (
<TouchableOpacity onPress={() => fire.auth().signOut()}>
<AntDesign name="logout" size={24} color="black" />
</TouchableOpacity>
),
}}
/>
</ShowCriminalsStack.Navigator>
);
export default class DashBoard extends React.Component {
render() {
return (
<>
{/* <Image
style={{ width: 400, height: 400, borderRadius: 400 / 2 }}
source={require("../assets/login.png")}
/> */}
<NavigationContainer>
<BackButton />
<Drawer.Navigator initialRouteName="DashBoard">
<Drawer.Screen name="DashBoard" component={DashBoardStackScreen} />
<Drawer.Screen
name="ShowGangs"
component={ShowGangsStackStackScreen}
/>
<Drawer.Screen
name="ShowCriminals"
component={ShowCriminalsStackScreen}
/>
</Drawer.Navigator>
</NavigationContainer>
</>
);
}
}
这里,在上面的代码中,当它在 metro bundler 中运行时,使用 expo run android 命令,应用程序在 expo 中正常运行,没有任何问题或错误。但是当我使用 expo build:android 构建 apk 并尝试将其安装在我的物理设备中时,它会显示启动画面,然后显示白色空白屏幕。也不路由到登录组件或仪表板组件
最佳答案
提出了许多解决方案,但要真正了解您的问题,您需要查看 how Expo recommends debugging production issues .
具体来说,我所做的是运行 expo start --no-dev --minify
并查看是否可以重现该问题。 (注意:当您更改代码时,这不会刷新,因此您需要退出 Expo Go 应用程序并重新启动它才能看到更改。)
对于我的问题,我能够使用上述方法在本地重现,并且我在 FlatList 中缺少
。keyExtractor={(_, id) => id.toString()}
关于javascript - 启动画面后 react native 博览会空白屏幕,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63118381/
问题是,当用户回复彼此的帖子时,我必须这样做: margin-left:40px; 对于 1 级深度 react margin-left:80px; 对于 2 层深等 但是我想让 react div
我试图弄清楚如何将 React Router 与 React VR 连接起来。 首先,我应该使用 react-router dom/native ?目前尚不清楚,因为 React VR 构建在 Rea
我是 React 或一般编码背景的新手。我不确定这些陈述之间有什么区别 import * as react from 'react' 和 import react from 'react' 提前致谢!
我正在使用最新的稳定版本的 react、react-native、react-test-renderer、react-dom。 然而,react-native 依赖于 react@16.0.0-alp
是否 react 原生 应用程序开发可以通过软件架构实现,例如 MVC、MVP、MVVM ? 谢谢你。 最佳答案 是的。 React Native 只是你提到的那些软件设计模式中的“V”。如果你考虑其
您好我正在尝试在我的导航器右按钮中绑定(bind)一个功能, 但它给出了错误。 这是我的代码: import React, { Component } from 'react'; import Ico
我使用react native创建了一个应用程序,我正在尝试生成apk。在http://facebook.github.io/react-native/docs/signed-apk-android.
1 [我尝试将分页的 z-index 更改为 0,但没有成功] 这是我的codesandbox的链接:请检查最后一个选择下拉列表,它位于分页后面。 https://codesandbox.io/s/j
我注意到 React 可以这样导入: import * as React from 'react'; ...或者像这样: import React from 'react'; 第一个导入 react
我是 react-native 的新手。我正在使用 React Native Paper 为所有屏幕提供主题。我也在使用 react 导航堆栈导航器和抽屉导航器。首先,对于导航,论文主题在导航组件中不
我有一个使用 Ignite CLI 创建的 React Native 应用程序.我正在尝试将 TabNavigator 与 React Navigation 结合使用,但我似乎无法弄清楚如何将数据从一
我正在尝试在我的 React 应用程序中进行快照测试。我已经在使用 react-testing-library 进行一般的单元测试。然而,对于快照测试,我在网上看到了不同的方法,要么使用 react-
我正在使用 react-native 构建跨平台 native 应用程序,并使用 react-navigation 在屏幕之间导航和使用 redux 管理导航状态。当我嵌套导航器时会出现问题。 例如,
由于分页和 React Native Navigation,我面临着一种复杂的问题。 单击具有类别列表的抽屉,它们都将转到屏幕 问题陈述: 当我随机点击类别时,一切正常。但是,在分页过程中遇到问题。假
这是我的抽屉导航: const DashboardStack = StackNavigator({ Dashboard: { screen: Dashboard
尝试构建 react-native android 应用程序但出现以下错误 info Running jetifier to migrate libraries to AndroidX. You ca
我目前正在一个应用程序中实现 React Router v.4,我也在其中使用 Webpack 进行捆绑。在我的 webpack 配置中,我将 React、ReactDOM 和 React-route
我正在使用 React.children 渲染一些带有 react router 的子路由(对于某个主路由下的所有子路由。 这对我来说一直很好,但是我之前正在解构传递给 children 的 Prop
当我运行 React 应用程序时,它显示 export 'React'(导入为 'React')在 'react' 中找不到。所有页面错误 see image here . 最佳答案 根据图像中的错误
当我使用这个例子在我的应用程序上实现 Image-slider 时,我遇到了这个错误。 import React,{Component} from 'react' import {View,T
我是一名优秀的程序员,十分优秀!