React_Native (1)
18663 ワード
😁 React NativeはFacebookが開発したオープンソースモバイルアプリケーションフレームワークです.
📌 何が反応と違うの?
1.View:htmlのdivと同じ役割です.
2.flex:1->親コンテナで、すべてのスペースが使用可能です.
3.flex:1 flex:2->敷地面積は1:2です.
4.widthやheightと比較してflexを使う👍
🔴 簡単なコード例で理解
1.コンテナビューには、yelloとblue Viewの2つのサブビューが含まれます.
2.YelloViewとBlueViewのflexは1と1であり、両者の空間が1:1であることを意味する.
3.Viewはhtmlのdivを表します.
🔴 Loadingウィンドウの作成
Loading function Viewの親コンテナにテキストの子を配置します. styles 🔴 Expo APIから場所を取得します.terminalから function->クラス Location.getCurrentPositionAsyncはawait関数で、async()関数で作成されます. componentDidMount()にはgetLocation関数が含まれています. 🔴 ユーザ位置情報を検証して位置を受信します.
getLocation関数は、インポート先の関数です. ただし、場所をインポートするには、ユーザーの場所情報を受け入れる必要があります. try catch文のlocation.requestPermissionAsync()を使用して、ユーザーの同意を受け入れます. 同意しない場合、catch文でerror Alertがキャプチャされ、発行されます. isLoadingはデータをインポートする時間があるため、trueのデフォルト値からすべてのデータをインポートするとすぐにfalseにジャンプします.2つのbool値に基づいてLoadingウィンドウを出力するかどうか. 🔴 緯度と経度で天気をもたらす
openweather.ioからAPI KEYをインポートします. getWeather非同期関数はaxiosを介してAPIにインポートされる. ``に、長さ、緯度、api keyを入れます. <出典:ノマドエンコーダ>
📌 何が反応と違うの?
1.View:htmlのdivと同じ役割です.
2.flex:1->親コンテナで、すべてのスペースが使用可能です.
3.flex:1 flex:2->敷地面積は1:2です.
4.widthやheightと比較してflexを使う👍
🔴 簡単なコード例で理解
💻 App.jsコード
import { StatusBar } from 'expo-status-bar';
import React from 'react';
import { StyleSheet, Text, View } from 'react-native';
export default function App() {
return (
<View style={styles.container}>
<View style = {styles.yellowView}/>
<View style = {styles.blueView}/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1
},
yellowView:{
flex:1,
backgroundColor:"yellow"
},
blueView: {
flex:1,
backgroundColor:"blue"
}
});
😀 コードの説明1.コンテナビューには、yelloとblue Viewの2つのサブビューが含まれます.
2.YelloViewとBlueViewのflexは1と1であり、両者の空間が1:1であることを意味する.
3.Viewはhtmlのdivを表します.
🔴 Loadingウィンドウの作成
💻 Loading.jsコード
import React from "react";
import {StyleSheet, Text, View} from "react-native";
export default function Loading(){
return <View style={styles.container}>
<Text style ={styles.text}>Getting the fucking weather</Text>
</View>
}
const styles = StyleSheet.create({
container:{
flex:1,
justifyContent:"flex-end", //content의 내용을 밑단으로 내림.
paddingHorizontal:30,
paddingVertical : 150,
backgroundColor:"#FDF6AA"
},
text:{
color:"#2c2c2c",
fontSize: 20
}
});
😀 コードの説明justifyContent : "flew-end"
:contentをダウングレードします.paddingHorizontal:30, paddingVertical : 150
:縦と横の充填空間を数値に設定します.fontSize : 20
orfonrSize:"20px"
は、このように記入する必要があります.expo install expo-location
location APIをインストールします.💻 App.jsコード
export default class extends React.Component {
getLocation = async() =>{
const location = await Location.getCurrentPositionAsync();
console.log(location);
}
componentDidMount(){
this.getLocation();
}
render(){
return <Loading />;
}
}
😀 コードの説明💻 App.jsコード
export default class extends React.Component {
state = {
isLoading: true
}
getLocation = async() =>{
try{
await Location.requestPermissionsAsync();
const {coords : {latitude, longtinude}} = await Location.getCurrentPositionAsync();
//send to API and get weather!
this.setState({isLoading:false})
}catch(error){
Alert.alert("Can't find you.", "so sad");
}
}
componentDidMount(){
this.getLocation();
}
render(){
const {isLoading } = this.state;
return isLoading? <Loading /> : null;
}
}
😀 コードの説明const {coords:{latitude,longtitude}} = await Location.getCurrentPositionAsync()
緯度と経度をインポートします.💻 App.jsコード
import axios from "axios";
import * as Location from "expo-location";
const API_KEY = "d6ee5391a7da7b3a908bb7093fd3fa0d";
export default class extends React.Component {
...
getWeather = async(latitude, longitude) =>{
const {data} = await axios.get(
`http://api.openweathermap.org/data/2.5/weather?lat=${latitude}&lon=${longitude}&appid=${API_KEY}`
);
console.log(data);
};
😀 コードの説明Reference
この問題について(React_Native (1)), 我々は、より多くの情報をここで見つけました https://velog.io/@luck2901/ReactNativeテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol