Simulattorの最新バージョン(14.0)では、最新バージョンのreact Native 0.63.1イメージコンポーネントが表示されません。13.5以下では正常に動作します。
AwesomeProject ······················ プロジェクト文書
  _test_ ······························ テストフォルダー
│   App-test.js ························ テストファイル
  android ····························· androidコンフィギュレーション・カタログ
│ └── app ················· エントリファイル
  ios ······················· ios 
│ └── AwesomeProject.xcworkspace ..... スタートアップフォルダ
└── README.md ························· 記述式問題の解答と解説
React Nativeのローディング原則。
- react Nativeの最終出力はindex.jsにあります。
- index.jsの先頭に目線を移動します。
// react-Native登録されたクラス・コンポーネントを出力する。
import {AppRegistry} from 'react-native';
// reactを使って書かれたコンポーネント。
import App from './App';
// app.jsonプロジェクト名設定ファイル。
import {name as appName} from './app.json';
/**
* 登録クラス・コンポーネントは2つのパラメーターを受け取る。
* アプリ.json 設定されたファイル名。
* もうひとつは、アプリのコンポーネントで構成されるコールバック関数である。
*/ 
AppRegistry.registerComponent(appName, () => App);
- ios設定ファイルの分析 ディレクトリ IOS -> プロジェクト名 -> name/name/AppDelegate.m
概要:app.jsコンポーネントの概要ファイル。index.jsファイルへの最終出力は、プロジェクト・エントリ・ファイルです。androidとIOSはブリッジファイルを通してルートビューを読み込みます。対応するモジュールを探します。
react native
- reactがコンポーネントで使用されているかどうかは関係ありません。導入されていなければエラーが報告されます。
- 開発時に、いくつかのネイティブコンポーネントを呼び出す必要がある場合は、react-nativeが導入されています。
- その他の使い方は、基本的にreactのJSX構文と同じです。
- 画面解像度に応じて自動的に分配される単位はありません
- スタイルは直リンクスタイルとして書くことができます。
- また、変数を介してStyleSheet.create({...})を受け取ることも可能です。を受け取ることも可能です。
- デバッグ IOS コントロールキー + コメントキー デバッガを開きます。
ネイティブサイズとランニングプラットフォーム
flex
1. felxDirection : row | row-reverse | column | column-reverse
* このプロパティは、スピンドルの方向を決定する。 
* row: 主軸は水平で、始点は左端にある。
* row-reverse: 主軸は水平で、始点は右端にある。
* column( : 主軸は上端を起点とする垂直方向である。
* column-reverse: 主軸は垂直方向である。始点は下端にある。
2. justifyContent: flex-start | center | space-between | space-around
* スピンドル内の伸縮アイテムのアライメントを定義する。
* flex-start: 展開項目は行頭に揃えられる。
* flex-endストレッチ項目は行末に向かって整列される。
* center: 伸縮するアイテムは、ラインの中央に向かって整列する。
* space-between端が揃っている。 アイテムは等間隔に並んでいる。
* space-aroundストレッチアイテムは一列に並べられる。両端に半分のスペースが確保されている。
現在のデバイスのサイズを取得します。
- react Nativeでのディメンジョンのインポート
<Text>
 現在のスクリーンの幅: {Dimensions.get('window').width + '
'}
 現在の画面の高さ: {Dimensions.get('window').height + '
'}
 現在の画面の解像度: {Dimensions.get('window').scale + '
'}
</Text>
- 現在の実行プラットフォーム。 リアクトネイティブでディメンジョンをインポートします。 この値に基づいてどのプラットフォームであるかを判断し、プラットフォームに基づいて適切な処理を行うことができます。
<Text>
 現在のオペレーティング・プラットフォーム: {Platform.OS}
 </Text>
共通コンポーネント
- View: コンテナ・コンポーネント。コンポーネントの入れ子にのみ使用できます。
- テキスト:テキストは必ずテキストで記述してください。自動的に改行されます。行数の設定 その他の機能 APiをご覧ください。
- Image: uri: 読み込み時に高さと幅を設定する必要があります。
- ImageBackgroundは背景イメージとして機能します。コンテナとして使用できます。
- multiline 複数行入力。
- 通常、ボタンは TouchableOpacity でカプセル化されます。
- ScrollView Component scroll view Horizontal: true; スクロールすると、データが多いとスクロールが止まってしまいます。
- FlatList はスクロールするリストに適しています。パフォーマンスを最適化するために、キーと再利用メカニズムに従って最適化されています。
- 公式には fetch を使ってデータを取得することを推奨しています。axios を使って fetch することもできます。
react-navigation
プロジェクトの初期化:プロジェクトのルート・ディレクトリで以下のコマンドを実行してください。
expo install react-navigation react-native-gesture-handler react-native-reanimated react-native-screens
すでに作成されたプロジェクト
yarn add react-navigation
yarn add react-native-gesture-handler
yarn add react-native-reanimated
yarn add react-native-screens@^1.0.0-alpha.23
IOS インストール後
cd ios/
// リアクトをインストールする-navigation接続に必要なプラグイン
pod install
cd ../
implementation 'androidx.appcompat:appcompat:1.1.0-rc01'
implementation 'androidx.swiperefreshlayout:swiperefreshlaout:1.1.0-alpha02'
実行中のエラー:インストールが少ないことが原因です:
yarn add react-navigation-stack
yarn add react-native-safe-area-context
yarn add @react-native-community/masked-view
cd ios/
// リアクトをインストールする-navigation接続に必要なプラグイン
pod install
cd ../
ナビゲーター
コンポーネントでのコンテナの作成
import React, {Component} from 'react';
import {View, Text, Button} from 'react-native';
import {createAppContainer} from 'react-navigation';
import {createStackNavigator} from 'react-navigation-stack';
// import LKWineList from '../components/LKWineList.js';
import LKNet from '../components/LKNet.js';
class HomeScreen extends Component {
 static navigationOptions = {
 title: ' ',
 };
 constructor() {
 super();
 }
 render() {
 return (
 <View style={{flex: 1, alignItems: 'center', justifyContent: 'center'}}>
 <Text>Home Screen</Text>
 <Button
 title="Go to Details"
 onPress={() => this.props.navigation.navigate('Details')}
 />
 </View>
 );
 }
}
class DetailsScreen extends Component {
 static navigationOptions = {
 title: ' ',
 };
 constructor() {
 super();
 }
 render() {
 return (
 <View
 style={{
 flex: 1,
 backgroundColor: 'red',
 justifyContent: 'center',
 alignItems: 'center',
 }}>
 <Text>Details</Text>
 </View>
 );
 }
}
// createStackNavigatorコンテナを作成し、このコンテナの中にジャンプのすべてのコンポーネントを入れる。
const AppNavigator = createStackNavigator({
 home: HomeScreen,
 my: MyScreen,
});
// このコンテナをcreateAppContainerの中に入れる。
const AppContainer = createAppContainer(AppNavigator);
export default AppContainer;
画面切り替え
// スタックにこのコンポーネントがあるかどうかを判断し、あればそのページに戻り、なければ新しいコンポーネントを作ってスタックに押し込んで表示する。
this.props.navigation.navigate("コンポーネントのルート名") 
// スタック・プレゼンテーション用の新しいコンポーネントを作成する
this.props.navigation.push("コンポーネントのルート名")
// goBack 前のページに戻る
this.props.navigation.goBack("コンポーネントのルート名")
// ホームコンポーネントへ戻る
this.props.navigation.popToTop("コンポーネントのルート名")
例:ページ間のパラメータ受け渡し
//  
this.props.navigation.push('Details', {
 newId: 'lk001',
 newName: 'アーセナルは広がるかもしれない',
 newTag: ' ',
 }
// パラメータを個別に受け取る
const {navigation} = this.props;
<Text> </Text>
<Text>ID: {navigation.getParam('newId')}</Text>
<Text> : {navigation.getParam('newTag')}</Text>
<Text> : {navigation.getParam('newName')}</Text>
// パラメータ全体の取得
<Text> : {navigation.state.params}</Text>
ルーティングパラメータ固有のコンフィギュレーション:
createStackNavigator({
 //ナビゲート可能な各画面について、以下のように新しいエントリーを作成する:
 Profile: {
 //`ProfileScreen`は画面のメインコンテンツとなるReactコンポーネントだ。
 screen: ProfileScreen,
 //StackNavigatorが`ProfileScreen`そうなれば、次のようなことが可能になる。`navigation` 
 //オプション:ウェブアプリでのディープリンクやリアクトの使用-navigation以下のパスが使用される:
 path: 'people/:name',
 //パスからアクションとルートのパラメーターを抽出する。
 //オプショナル: 画面カバー`navigationOptions`
 navigationOptions: ({ navigation }) => ({
 title: `${navigation.state.params.name}'s Profile'`,
 }),
 },
 ...MyOtherRoutes,
});
ページヘッダータイトルのカスタマイズ 検索: ヘッダーバーの設定
// カスタムタイトル
static navigationOptions = {
 title: 'Home',
 headerStyle: {
 backgroundColor: '#f4511e',
 },
 headerTintColor: '#fff',
 headerTitleStyle: {
 fontWeight: 'bold',
 fontSize: 30,
 },
 headerLeft: () => <Button title=" " onPress={() => alert(' ')} />,
 headerRight: () => (
 <Button title=" " onPress={() => alert(' ')} />
 ),
 };
動的見出し
static navigationOptions = ({ navigation }) => {
 return {
 title: navigation.getParam('otherParam', 'A Nested Details Screen'),
 };
 };
下部ナビゲーションバー
yarn add react-navigation-tabs 




