美文网首页
TypeScript & ReactNative使用Na

TypeScript & ReactNative使用Na

作者: Grabin | 来源:发表于2018-11-23 12:41 被阅读54次
  • 创建项目
    react-native init 项目名字 --version 0.56.0

  • 添加 TypeScript
    官方文档 [ link ]

  • 添加 React Navigation
    官方文档 [ link ]
    a. 安装 react-navigation
    yarn add react-navigation
    b. 安装 react-native-gesture-handler
    yarn add react-native-gesture-handler
    c. Link all native dependencies:
    react-native link

  • 如果使用TypeScript的话,需要再执行:
    yarn add @types/react-navigation

  • 创建 Games.tsx 文件,用于跳转

import React from 'react';
import { StyleSheet, Text, View, Button } from 'react-native';

export default class Games extends React.Component {
    static navigationOptions = {
        title: 'Games',
      };
    render() {
        return (
            <View style={styles.container}>
                <Text>Games's Page!</Text>
                <Button
                    title="Back to home"
                    onPress={() =>
                        this.props.navigation.navigate('Home')
                    }
                />
            </View>
        );
    }
}

const styles = StyleSheet.create({
  container: {
    flex: 1,
    backgroundColor: '#fff',
    alignItems: 'center',
    justifyContent: 'center',
  },
});
  • 创建 Home.tsx 文件,作为主页面
import Games from '../Games/Games';

import React from "react";
import { View, Text, Button } from "react-native";
import { createStackNavigator, createAppContainer } from "react-navigation";



class Home extends React.Component {
  static navigationOptions = {
    title: 'Main',
  };
  render() {
    return (
      <View style={{ flex: 1, alignItems: "center", justifyContent: "center" }}>
        <Text>This's Main Screen</Text>
        <Button
          title="Go to Details"
          onPress={() => this.props.navigation.navigate('Games')}
        />
      </View>
    );
  }
}

const AppNavigator = createStackNavigator({
  Home: { screen: Home },
  Games: { screen: Games },
});

export default createAppContainer(AppNavigator);
  • 然后在 App.tsx/App.js 入口文件中, 引用创建好的Navigator
import React, {Component} from 'react';
import AppContainer from './components/Home/Home'

export default class App extends React.Component {
  render() {
    return <AppContainer />;
  }
}
  • 运行!
rn.gif

应该是没那么顺利的... 我被卡了两天.. 如果一次就成功,那恭喜你...

  • 遇到的问题:


    image.png

学习的过程是真的恶心...

  • 解决:
    把模拟器reset了,然后重新 run react-native run-ios
    image.png

参考链接:[link]

相关文章

网友评论

      本文标题:TypeScript & ReactNative使用Na

      本文链接:https://www.haomeiwen.com/subject/ttcjqqtx.html