javascript - createStackNavigator med Expo och Typescript, renderar inget


UPPDATERING :

Git-repo för NotWorkingProject

Försöker använda

react-navigation-paketet i React Native (Expo-Typescript)

på samma sätt som vi gör med vanlig React Native (Expo - Vanilla JS)

Men det visar ingenting på skärmen.

AppNavigator.tsx

import {createAppContainer, createStackNavigator} from 'react-navigation';
import * as React from 'react';
import {StyleSheet, View, Text} from 'react-native';

const styles = StyleSheet.create({
    container: {
        backgroundColor: '#f0f',
        flex: 1
    }
});

const HomeScreen = () => (
    <View style={styles.container}>
        <View>
            <Text>PLEASE PLEASE PLEASE RENDER THIS</Text>
        </View>
    </View>
);

HomeScreen.navigationOptions = {
    title: 'Home'
};

const AppNavigator = createStackNavigator({Home: HomeScreen});

export default createAppContainer(AppNavigator);

App.tsx

import React from 'react';
import { StyleSheet, Text, View, ViewStyle } from 'react-native';
import AppContainer from './navigation/AppNavigator'

const styles = {
  container: {
    flex: 1,
    backgroundColor: 'red',
    alignItems: 'center',
    justifyContent: 'center',
  } as ViewStyle
};


const App = (style:Object): {} => {
  const { container } = styles;
  return (
    <View style={container}>
      <AppContainer/>
    </View>
  );
}

export default  App;

IFALL DET BEHÖVS:

package.json

{
  dependencies: {
    expo: "^34.0.1",
    react: "16.8.3",
    "react-dom": "^16.8.6",
    "react-native": "https://github.com/expo/react-native/archive/sdk-34.0.0.tar.gz",
    "react-native-gesture-handler": "^1.3.0",
    "react-native-web": "^0.11.4",
    "react-navigation": "^3.11.1"
  },
  devDependencies: {
    "@types/react": "^16.8.23",
    "@types/react-native": "^0.57.65",
    "babel-preset-expo": "^6.0.0",
    typescript: "^3.4.5"
  }
}

Var snäll och låt mig veta vad som är fel.

Svar #1

Du behöver importera AppContainer

import AppNavigator from "./config/router";



    import React from 'react';
import { StyleSheet, Text, View, ViewStyle } from 'react-native';
import AppContainer from './navigation/AppNavigator'

const styles = {
  container: {
    flex: 1,
    backgroundColor: 'red',
    alignItems: 'center',
    justifyContent: 'center',
  } as ViewStyle
};


const App = (style:Object): {} => {
  const { container } = styles;
  return (

      <AppContainer/>

  );
}
export default  App;

Svar #2

Du behöver inte lägga undan enheten.

App.tsx Exempel Jag skapade

import {createAppContainer, createStackNavigator} from 'react-navigation';
import * as React from 'react';
import {StyleSheet, View, Text} from 'react-native';

const styles = StyleSheet.create({
    container: {
        backgroundColor: '#f0f',
        flex: 1,
        justifyContent:"center",
        alignItems:"center"
    }
});

const HomeScreen = () => (
    <View style={styles.container}>
        <View>
            <Text>PLEASE PLEASE PLEASE RENDER THIS</Text>
        </View>
    </View>
);

HomeScreen.navigationOptions = {
    title: 'Home'
};

const AppNavigator = createStackNavigator({Home: HomeScreen});

export default createAppContainer(AppNavigator);