TextInput
TextInput 추가하기 (전체 소스코드)
(App.js)
import { StatusBar } from "expo-status-bar";
import { useState } from "react";
import {
StyleSheet,
Text,
View,
TouchableOpacity,
TextInput,
} from "react-native";
import { theme } from "./colors";
export default function App() {
const [working, setWorking] = useState(true);
const [text, setText] = useState("");
const travel = () => setWorking(false);
const work = () => setWorking(true);
const onChangeText = (payload) => setText(payload);
return (
<View style={styles.container}>
<StatusBar style="auto" />
<View style={styles.header}>
<TouchableOpacity onPress={work}>
<Text
style={{ ...styles.btnText, color: working ? "white" : theme.grey }}
>
Work
</Text>
</TouchableOpacity>
<TouchableOpacity onPress={travel}>
<Text
style={{
...styles.btnText,
color: !working ? "white" : theme.grey,
}}
>
Travel
</Text>
</TouchableOpacity>
</View>
<TextInput
onChangeText={onChangeText}
value={text}
placeholder={working ? "Add a to do" : "where do you want to go?"}
style={styles.input}
/>
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: theme.bg,
paddingHorizontal: 20,
},
header: {
justifyContent: "space-between",
flexDirection: "row",
marginTop: 100,
},
btnText: {
fontSize: 38,
fontWeight: "600",
color: "white",
},
input: {
backgroundColor: "white",
paddingVertical: 15,
paddingHorizontal: 20,
borderRadius: 30,
marginTop: 20,
fontSize: 18,
},
});
- 활성화 버튼은 흰색, 비활성화 버튼은 회색으로 바뀌도록 수정
- react-native에선 textinput만 사용한다. textarea나 input 같은 것들은 없다.
- <TextInput> 에는 굉장히 많은 props들이 있다. >> reactnative.dev 참조
color.js 추가
(color.js)
export const theme = {
bg: "black",
grey: "#3A3D40",
};
'앱 개발 > React-Native' 카테고리의 다른 글
[React-Native] Todo 앱 만들기(4/6)_Object.keys() (0) | 2023.01.28 |
---|---|
[React-Native] Todo 앱 만들기(3/6)_Object.assign(), ES6 (0) | 2023.01.28 |
[React-Native] Todo 앱 만들기(1/6)_Touchables (0) | 2023.01.28 |
[React-Native] 날씨 앱 만들기(6/6)_Icons (0) | 2023.01.28 |
[React-Native] 날씨 앱 만들기(5/6)_Weather (1) | 2023.01.25 |