React-Native Tutorial To do list [ #14 ]

μ‘°νŒ”λ‘œΒ·2020λ…„ 9μ›” 25일
0

React-Native-Todolist

λͺ©λ‘ 보기
14/15
post-thumbnail

React Native Tutorial λ”°λΌν•˜κΈ° πŸ“±

πŸ“Œ νŠœν† λ¦¬μ–Όμ„ λ”°λΌν•œ ν”„λ‘œμ νŠΈμž…λ‹ˆλ‹€!

ν•  일 λͺ©λ‘ μ‚­μ œν•˜κΈ°

ν•  일 λͺ©λ‘ μ‚­μ œ ν•¨μˆ˜ μƒμ„±ν•˜κΈ°

app.js νŒŒμΌμ—μ„œ onRemove ν•¨μˆ˜λ₯Ό μƒμ„±ν•©μ‹œλ‹€.

const onRemove = id => e => {
    setTodos(todos.filter(todo => todo.id !== id));
};

μ„€λͺ…

이 ν•¨μˆ˜μ—μ„œλ„ setTodosλ₯Ό μ‚¬μš©ν•˜μ—¬ μƒνƒœλ₯Ό μ—…λ°μ΄νŠΈ ν•΄μ€λ‹ˆλ‹€. 각 μ•„μ΄ν…œμ˜ 고유 idλ₯Ό λ°›μ•„μ™€μ„œ ν•΄λ‹Ή 아이디λ₯Ό 가진 μ•„μ΄ν…œ 객체만 μ œμ™Έν•˜κ³  μƒˆλ‘œμš΄ 배열을 λ§Œλ“œλŠ” ν•¨μˆ˜ μž…λ‹ˆλ‹€.

μƒμ„±ν•œ ν•¨μˆ˜λ₯Ό TodoList μ»΄ν¬λ„ŒνŠΈμ— μ „λ‹¬ν•˜κΈ°

<TodoList todos={todos} onRemove={onRemove} />

TodoList μ»΄ν¬λ„ŒνŠΈμ—μ„œ onRemove ν•¨μˆ˜λ₯Ό λ°›μ•„ TodoListItem μ»΄ν¬λ„ŒνŠΈμ— μ „λ‹¬ν•˜κΈ°

const TodoList = ({todos, onRemove}) => {
  return (
    <ScrollView contentContainerStyle={styles.listContainer}>
      {todos.map(todo => (
        <TodoListItem key={todo.id} {...todo} onRemove={onRemove} />
      ))}
    </ScrollView>
  );
};

TodoListItem μ»΄ν¬λ„ŒνŠΈμ—μ„œ μ‚­μ œ λ²„νŠΌμ— onPress 이벀트λ₯Ό μƒμ„±ν•˜κ³  onRemove() ν•¨μˆ˜λ₯Ό ν• λ‹Ήν•˜κΈ°

const TodoListItem = ({textValue, id, checked, onRemove}) => {
  return (
    <View style={styles.container}>
        ...
      <TouchableOpacity style={styles.buttonContainer}>
        <Text style={styles.buttonText} onPress={onRemove(id)}>
          <Icon name="delete" size={30} color="#e33057" />
        </Text>
      </TouchableOpacity>
    </View>
  );
};

결과보기

profile
ν˜„μ‹€μ— μ•ˆμ£Όν•˜μ§€ μ•Šκ³  - 개발자

0개의 λŒ“κΈ€