π νν 리μΌμ λ°λΌν νλ‘μ νΈμ λλ€!
ν μΌ λͺ©λ‘ μΆκ°, μμ κΈ°λ₯ λ±μ ꡬννκΈ° μν΄μλ μνκ°μ μ μν΄μΌ ν©λλ€. todos λΌλ μμ±μΌλ‘ μνλ₯Ό μ μν΄μ ν μΌ λͺ©λ‘μ μνλ₯Ό κ΄λ¦¬νκ² μ΅λλ€. todos κ°μ²΄λ μλμ κ°μ΄ μΈ κ°μ§ μμ±κ°μ κ°μ§λλ€.
todos : {id: Number, textValue: string, checked: boolean }
id κ° λͺ©λ‘μ κ³ μ μμ΄λ
textValue λͺ©λ‘ λ΄μ©
checked μλ£ μ¬λΆ. (trueμ΄λ©΄ μλ£ falseμ΄λ©΄ λ―Έμλ£)
λ³Έ νν 리μΌμμλ μν κ΄λ¦¬λ₯Ό μν΄μ ν (hook)μ μ¬μ©νκ² μ΅λλ€.
ν (hook)μ 리μ‘νΈ λ²μ 16.8μ μΆκ°λ κΈ°λ₯μΌλ‘ ν μ μ΄μ©νλ©΄ ν¨μν μ»΄ν¬λνΈμμλ μ»΄ν¬λνΈμ μν―κ°μ κ΄λ¦¬ν μ μκ³ μ»΄ν¬λνΈμ μλͺ μ£ΌκΈ° ν¨μλ₯Ό μ΄μ©ν μ μμ΅λλ€. ν κ³Ό κ΄λ ¨λ λ΄μ©μ λ§ν¬λ₯Ό μ°Έμ‘°νμκΈ° λ°λλλ€.
app.js νμΌμ μλμ λͺ λ Ήμ΄λ₯Ό μ λ ₯ν΄μ£ΌμΈμ!
import React, {useState} from 'react';
const [todos, setTodos] = useState([]);
import React, {useState} from 'react';
import TodoInsert from './components/TodoInsert';
import TodoList from './components/TodoList';
import {SafeAreaView, StyleSheet, TextInput, View, Text, ScrollView} from 'react-native';
const App = () => {
// todos: {id: Number, textValue: string, checked: boolean }
const [todos, setTodos] = useState([]);
return (
<SafeAreaView style={styles.container}>
<Text style={styles.appTitle}>Hello Todolist</Text>
<View style={styles.card}>
<TodoInsert />
<TodoList />
</View>
</SafeAreaView>
);
};
const styles = StyleSheet.create({
container: {
flex: 1,
backgroundColor: '#3143e8',
},
appTitle: {
color: '#fff',
fontSize: 36,
marginTop: 30,
marginBottom: 30,
fontWeight: '300',
textAlign: 'center',
backgroundColor: '#3143e8',
},
card: {
backgroundColor: '#fff',
flex: 1,
borderTopLeftRadius: 10,
borderTopRightRadius: 10,
marginLeft: 10,
marginRight: 10,
},
input: {
padding: 20,
borderBottomColor: '#bbb',
borderBottomWidth: 1,
fontSize: 24,
marginLeft: 20,
},
});
export default App;
useState ν μ μΈμλ‘ μ΄κΈ° μνκ°μ λ°μ΅λλ€. number, string, array λ±μ΄ μΈμκ°μΌλ‘ λ€μ΄κ° μ μμ΅λλ€. μ°λ¦¬λ ν μΌ λͺ©λ‘ κ°μ²΄λ₯Ό λ΄μ λ°°μ΄μ΄ νμνκΈ° λλ¬Έμ λΉ λ°°μ΄([])μ μΈμκ°μΌλ‘ λ£μ΄μ£Όμμ΅λλ€.
useState ν μ λ°°μ΄μ λ κ°μ κ°μ λ£μ΄ λ°νν©λλ€. 첫 λ²μ§Έ μμλ μνκ°μΌλ‘, ν¨μ νΈμΆ μ μ λ ₯ν μΈμκ° μ΄κΈ°κ°μΌλ‘ μ¬μ©λ©λλ€. λ λ²μ§Έ μμλ μνκ°μ λ³κ²½ν μ μλ ν¨μμ λλ€. λ³Έ νν 리μΌμμ todosλ ν μΌ λͺ©λ‘μ νμ¬ μνλ₯Ό λνλ΄λ©° setTodosλ todosλ₯Ό μ λ°μ΄νΈ ν΄μ£Όλ ν¨μμ λλ€.