• 로그인
  • 장바구니에 상품이 없습니다.

home2 게시판 React 게시판 input 입력후 출력 오류

input 입력후 출력 오류

2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 글쓴이
  • #75051

    이혜원
    참가자
    안녕하세요. input에 입력한 값이 화면에 하나씩 밀려서 출력되는 오류가 있는데, 그 이유를 모르겠습니다.
    처음에 input에 입력한 값은 localStorage에도 []빈값으로 출력되고, 그 다음 버튼을 누르면 그 때부터 저장이 됩니다.
    어느 부분에서 잘못된 건지 도와주실 수 있을까요? 감사합니다!
    
    
    ```Todo.jsx
    <pre>import React from 'react'
    import { useState } from 'react'
    import Input from './Input'
    import TodoList from './TodoList'
    
    function Todo() {
    const [input, setInput] = useState('')
    const [todos, setTodos] = useState([])
    const submitHandler = (e) => {
     e.preventDefault()
    setTodos([...todos, input])
    }
    const save = () => {
     localStorage.setItem('todos', JSON.stringify(todos))
    }</pre>
    <pre>const savedTodos = JSON.parse(localStorage.getItem('todos'))
    return (
    <div>
    <h1>투두리스트</h1>
    <form>
    <Input input={input} setInput={setInput} />
    <button
    onClick={(e) => {
    setInput('')
    submitHandler(e)
    save()
    }}
    >
     버튼
    </button>
    </form>
    {todos.length > 0 ? <div>{todos.length}개의 할일</div> : <div>할일이 없습니다</div>}
    <TodoList todos={todos} setTodos={setTodos} savedTodos={savedTodos} save={save} />
    </div>
     )
    }
    export default Todo
    ```
    ```Input.jsx</pre>
    <pre>import React from 'react'</pre>
    <pre>function Input({ input, setInput }) {
    return (
    <div>
    <input
    value={input}
    type="text"
    onChange={(e) => {
    setInput(e.target.value)
    }}
    />
    </div>
     )
    }</pre>
    <pre>export default Input</pre>
    <pre>```
    
    
    ```TodoList.jsx</pre>
    <pre>import React from 'react'
    function TodoList({ todos, setTodos, save, savedTodos }) {
    const delItem = (e) => {
    const del = e.target.parentNode
     del.remove()
    setTodos(todos.filter((todo) => todo.id != del.firstChild.id))
    }</pre>
    <pre>return (
    <div>
    <h3>
    {savedTodos != null
    ? savedTodos.map((todo, i) => (
    <div key={i}>
    <div id={Date.now()}>{todo}</div>
    <button onClick={delItem}>X</button>
    </div>
     ))
    : null}
    </h3>
    </div>
     )
    }</pre>
    <pre>export default TodoList</pre>
    <pre>```
    
    
    
    
    
    
    		
    	
    #75059

    codingapple
    키 마스터
    인풋태그에 value="" 속성은 지워봅시다
2 글 보임 - 1 에서 2 까지 (총 2 중에서)
  • 답변은 로그인 후 가능합니다.

About

현재 월 700명 신규수강중입니다.

  (09:00~20:00) 빠른 상담은 카톡 플러스친구 코딩애플 (링크)
  admin@codingapple.com
  이용약관, 개인정보처리방침
ⓒ Codingapple, 강의 예제, 영상 복제 금지
top

© Codingapple, All rights reserved. 슈퍼로켓 에듀케이션 / 서울특별시 강동구 고덕로 19길 30 / 사업자등록번호 : 212-26-14752 온라인 교육학원업 / 통신판매업신고번호 : 제 2017-서울강동-0002 호 / 개인정보관리자 : 박종흠