์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- ํ๋ก ํธ์ค๋
- ํ๋ก๊ทธ๋๋ฐ
- spring
- ๋ฐฑ์ค1436
- ์๋ฃ๊ตฌ์กฐ
- ์ฝ๋ฉ
- ์ปด๊ณต
- ํ์ด์ฌ
- ์น๊ฐ๋ฐ๊ธฐ๋ก
- ๋จ์ํ ์คํธ
- ๋ฐฑ์๋
- ์น๊ฐ๋ฐ
- ์ปดํจํฐ๊ณตํ
- ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ
- ๊ทธ๋ฆฌ๋
- ๋ฐฑ์คํ์ด
- ์คํ๋ง
- ๊ฐ๋ฐ์
- ์ฝ๋ฉํ ์คํธ
- ์ดํญ๊ณ์
- boj11653
- ChatGPT
- ๋ฐฑ์ค
- ๋ชจ๋ฐ์ผ์ฑํ๋ก๊ทธ๋๋ฐ
- SSE
- ๋ฆฌ์กํธ๋ค์ดํฐ๋ธ
- ์๊ณ ๋ฆฌ์ฆ
- ์ฐ์ ์์ํ
- ๋ฆฌ์กํธ
- ์ปด๊ณต์
- Today
- Total
๐ป๐ญ๐ง๐
[React Native] 02-4 ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ ์์ฑ ์ดํดํ๊ธฐ ๋ณธ๋ฌธ
[React Native] 02-4 ์ปดํฌ๋ํธ์ ์ด๋ฒคํธ ์์ฑ ์ดํดํ๊ธฐ
adorableco 2023. 8. 5. 03:33๋ฒํผ์ ๋๋ฅด๋ฉด ๋ํ์์๊ฐ ๋ํ๋๋ ๊ธฐ๋ฅ ๊ตฌํํ๊ธฐ
๋ฒํผ ์ปดํฌ๋ํธ
import react from 'react';
import {SafeAreaView, Alert, Button} from 'react-native';
export default function App() {
return (
<SafeAreaView>
<Button
title="Home"
onPress={() => Alert.alert('home pressed.', 'message')}
/>
</SafeAreaView>
);
}
- Button ์ฝ์ด ์ปดํฌ๋ํธ๋ onPress ์์ฑ์ ์ ๊ณตํ๋ค. โก๏ธ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ง์ ํด์ผ ํจ.
- <Button onPress = {์ฝ๋ฐฑ_ํจ์}>
- ์ฝ๋ฐฑ ํจ์์ ํํ : () => {/* ํจ์ ๋ชธํต */}
- <Button onPress = {์ฝ๋ฐฑ_ํจ์}>
- ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ๋ Alert API (Application Programming Interface) ๋ฅผ ์ ๊ณตํ๋ค.
- Alert API ๊ฐ ์ ๊ณตํ๋ alert ์ ์ ๋ฉ์๋ : static alert(ํ์ดํ, ๋ฉ์์ง)
- ์์ ์ฝ๋์์ onPress={() => Alert.alert('home pressed.', 'message')} ๋ ์๋ ์ด๋ฏธ์ง์ ๊ฐ์ด ๋ํ๋๋ค.

ํฐ์ฒ๋ธ ์ฝ์ด ์ปดํฌ๋ํธ
- Button ์ ๋์์ธ์ ์ตํต์ฑ์ด ์๋ค๋ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ํฐ์ฒ๋ธ ์ฝ์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ ์ ์๋ค.
ํน์ง
1) ์ปดํฌ๋ํธ ์์ด์ ํฐ์น๊ฐ ์ผ์ด๋๋ฉด onPress ์ด๋ฒคํธ ์์ฑ์ ์ค์ ๋ ์ด๋ฒคํธ ํธ๋ค๋ฌ ์ฝ๋ฐฑ ํจ์๋ฅผ ํธ์ถํ๋ค.
2) ๋จ ํ ๊ฐ์ ์์ ์ปดํฌ๋ํธ๋ง ์ฌ ์ ์๋ค.
TouchableOpacity ๋ฅผ ์ฌ์ฉํ์ฌ Text ์ปดํฌ๋ํธ๋ฅผ Button ์ฒ๋ผ ๋์ํ๊ฒ ํ๋ ์
import react from 'react';
import {SafeAreaView, Alert, Button} from 'react-native';
import {TouchableOpacity, TouchableHighlight, Text} from 'react-native';
const onPress = () => Alert.alert('home pressed.', 'message');
export default function App() {
return (
<SafeAreaView>
<Button title="home" onPress={onPress} />
<TouchableOpacity onPress={onPress}>
<Text>TouchableOpacity</Text>
</TouchableOpacity>
<TouchableHighlight onPress={onPress}>
<Text>TouchableHighlight</Text>
</TouchableHighlight>
</SafeAreaView>
);
}
โ Text ์ปดํฌ๋ํธ๋ onPress ์์ฑ์ ์ด์ฉํด์ ๋ฒํผ์ฒ๋ผ ์ฌ์ฉํ ์ ์๋ค. โก๏ธ Button ๊ณผ ํฐ์ฒ๋ธ ์ปดํฌ๋ํธ์ ๋ฌ๋ฆฌ ํฐ์นํ์ ๋ ์๊ฐ ํจ๊ณผ๊ฐ ์ ํ ์์.
ex) <Text onpress={onPress}>Press Me</Text>
TextInput ์ฝ์ด ์ปดํฌ๋ํธ
import {TextInput} from 'react-native'
- ํ ์คํธ๋ฅผ ์ ๋ ฅํ๊ณ ์ ํ ๋ TextInput ์ฝ์ด ์ปดํฌ๋ํธ๋ฅผ ์ฌ์ฉํ๋ค.
ํน์ง
1) ์์ ์์๋ฅผ ๊ฐ์ง์ง ๋ชปํ๋ค.
2) ํฌ์ปค์ค๋ฅผ ๊ฐ์ง๊ฒ ํ๋ focus ๋ฉ์๋์ ํฌ์ปค์ค๋ฅผ ์๊ฒ ํ๋ blur ๋ฉ์๋๊ฐ ์๋ค.
3) ํ ์คํธ๊ฐ ์ ๋ ฅ๋ ๋ onChangeText ์ด๋ฒคํธ ์ฒ๋ฆฌ๊ธฐ๋ฅผ ์คํํ๋ค.
4) ํ ์คํธ ์ ๋ ฅ์ด ๋ชจ๋ ๋๋๋ฉด onEndEditing ์ด๋ฒคํธ๋ฅผ ํธ์ถํ๋ค.
โ onFocus, onBlur, onEndEditing ์๋ ์๋ฌด๋ฐ ๋งค๊ฐ๋ณ์๊ฐ ์๋ ์ฝ๋ฐฑ ํจ์๋ฅผ ์ค์ ํ๋ค.
Text์ TextInput ์ ์ถ๊ฐํ App.tsx
import react from 'react';
import {SafeAreaView, Alert, Button, TextInput} from 'react-native';
import {TouchableOpacity, TouchableHighlight, Text} from 'react-native';
const onPress = () => Alert.alert('home pressed.', 'message');
export default function App() {
return (
<SafeAreaView>
<Button title="home" onPress={onPress} />
<TouchableOpacity onPress={onPress}>
<Text>TouchableOpacity</Text>
</TouchableOpacity>
<TouchableHighlight onPress={onPress}>
<Text>TouchableHighlight</Text>
</TouchableHighlight>
<TextInput
placeholder="enter your name"
onChangeText={(text: string) => console.log(text)}
onFocus={() => console.log('onFocus')}
onBlur={() => console.log('onBlur')}
onEndEditing={() => console.log('onEndEditing')}
/>
</SafeAreaView>
);
}
'๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ์ฑ ํ๋ก๊ทธ๋๋ฐ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[React Native] 03-2 View ์ปดํฌ๋ํธ์ CSS ๋ฐ์ค ๋ชจ๋ธ (0) | 2023.08.07 |
---|---|
[React Native] 03-1 style ์์ฑ๊ณผ StyleSheet API ์ดํดํ๊ธฐ (0) | 2023.08.05 |
[React Native] 02-3. ์ปดํฌ๋ํธ์ ์์ฑ ์ดํดํ๊ธฐ (0) | 2023.08.04 |
[React Native] 02. ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ๊ธฐ๋ณธ ๋ค์ง๊ธฐ -1 (0) | 2023.08.02 |
[React Native] 01. ๋ฆฌ์กํธ ๋ค์ดํฐ๋ธ ๊ฐ๋ฐ ํ๊ฒฝ ๊ฐ์ถ๊ธฐ (0) | 2023.08.01 |