버전에 맞춰서 강의와 다른 코드가 있습니다.
결과 화면
파일 구조
- src/components/ToDo.js
To Do List 추가하기 코드에서 dispatch, onDelete() 함수와 클릭 이벤트를 추가했다.
import React from 'react'
import { useDispatch } from 'react-redux'
import { deleteToDo } from '../store/store'
function ToDo(props) {
// ** Hooks
const dispatch = useDispatch()
function onDelete(e) {
e.preventDefault()
dispatch(deleteToDo(props.id))
}
return (
<li>
{ props.text } <button onClick={onDelete}>DEL</button>
</li>
)
}
export default ToDo
- src/routes/Home.js
To Do List 추가하기 코드에서 ToDo 컴포넌트에 id 값이 추가됐다.
import React, { useState } from 'react'
import { useDispatch, useSelector } from 'react-redux'
import { addToDo } from '../store/store'
import ToDo from '../components/ToDo'
function Home() {
// ** Hooks
const dispatch = useDispatch()
// ** States
const [text, setText] = useState('')
// ** Redux States
const toDos = useSelector(state => state)
function onChange(e) {
setText(e.target.value)
}
function onSubmit(e) {
e.preventDefault()
dispatch(addToDo(text))
setText('')
}
return (
<>
<h1>To Do</h1>
<form onSubmit={onSubmit}>
<input type="text" value={text} onChange={onChange}/>
<button>Add</button>
</form>
<ul>
{
toDos.map((toDo, index) => {
return (
<ToDo id={toDo.id} text={toDo.text} key={index}/>
)
})
}
</ul>
</>
)
}
export default Home
'React > React with redux' 카테고리의 다른 글
[리액트][리덕스] #3.4 React Redux (To Do List SCSS 적용하기) - 초보자를 위한 리덕스 101 (0) | 2023.05.02 |
---|---|
[리액트][리덕스] #3.3 React Redux (To Do List 상세페이지) - 초보자를 위한 리덕스 101 (0) | 2023.04.29 |
[리액트][리덕스] #3.1 React Redux (To Do List 추가하기) - 초보자를 위한 리덕스 101 (0) | 2023.04.28 |
[리액트][리덕스] #3.0 React Redux (To Do List 세팅하기) - 초보자를 위한 리덕스 101 (0) | 2023.04.28 |
[리덕스] #2 Pure Redex: To Do List - 초보자를 위한 리덕스 101 (0) | 2023.04.27 |