Js or React 질문

매개변수 자리에 들어오는 값을 콘솔로 출력하면 undefined인 이유

콛 다이어리 2024. 10. 9. 00:42

const toggleCompleted = (id, text, completed) => {
    alert("실행 잘되구있오");
  };

 

이렇게 함수를 선언하고

html 부분의 완료 버튼에

 

<button onClick={() => toggleCompleted(todo.id)}>완료</button>

 

이렇게 함수를 선언해줬다.

 

클릭한 값들도 잘 들어오고 있나 싶어서

얼럿 코드 위에

콘솔을 이용해서 값을 출력했는데

모두 undefined가 찍혔다....

 

튜터님께 여쭤봤는데

이벤트 핸들러 (여기에서는 onClick)에

그냥 함수(여기에서는 toggleCompleted)를

넘겨주게 되면

매개변수로 이벤트를 가져올 수 있기 때문에

undefined가 뜬다고 하셨다.

 

 

  const handleInputChange = (event) => {
    setNewTodo(event.target.value);
  };

얘랑

const handleSubmit = (event) => {
    event.preventDefault();

    setTodos([{ id: crypto.randomUUID(), text: newTodo }, ...todoList]);

    if (newTodo.trim().length === 0) {
      return;
    }
    setNewTodo("");
  };

얘도 

 <form onSubmit={handleSubmit}>
        <input
          type="text"
          placeholder="todoList 입력"
          onChange={handleInputChange}
          value={newTodo}
        ></input>
        <button type="submit">입력</button>
      </form>

이렇게 바로 넘겨줬는데

모두 event를 (매개변수로) 넘겨준 것 이기 때문에

undefined가 뜰 수 밖에 없는 것이다.