const avatarImg = document.createElement("img");
avatarImg.src = obj.avatarUrl;
// obj대신 agoraStatesDiscussions[0] 이렇게 입력했었어서, 동일한 데이터만 중복으로 여러개 나왔다.
// for문 이용해서 인덱스로 해보려고 했는데 안되서 한참 고민을 했는데...
// 하단 render함수에서 agoraStatesDiscussions[i]로 태그 추가하는 함수 호출하고 있었기 때문에, obj로 들어가면 간단히 해결된다.
// **항상 함수 실행되는 부분 먼저 확인하기 **
const form = document.querySelector("form");
const title = document.querySelector("div.form__input--title > input");
const nameInput = document.querySelector("div.form__input--name > input");
const textbox = document.querySelector("div.form__textbox > textarea");
form.addEventListener("submit", (event) => {
event.preventDefault();
//새로운 객체를 만들어야한다
//input에 입력된 값(value)를 넣은 새로운 객체
//새로운 객체를 ul요소 앞으로 넣어준다.
// 더미데이터(agoraStatesDiscussions)에도 추가해준다. ( 더미데이터는 기존에 가지고있던 데이터)- 기존데이터에 넣어주는건 안전장치
const obj = {
id: "unique id", //id는 나중에 배움..?!@?#?
createdAt: new Date().toISOString(),
title: title.value,
url: "https://github.com/codestates-seb/agora-states-fe/discussions/45",
author: nameInput.value,
answer: null,
bodyHTML: textbox.value,
avatarUrl:
"https://avatars.githubusercontent.com/u/97888923?s=64&u=12b18768cdeebcf358b70051283a3ef57be6a20f&v=4",
};
agoraStatesDiscussions.unshift(obj);
const newDiscussion = convertToDiscussion(obj); // 위에 디스커션 추가해주는 함수불러와서 적용
ul.prepend(newDiscussion);
});
$ element.prepend() : element의 첫번째 자식 앞에 객체를 추가한다.:root {
--purple: blueviolet;
}
textarea:focus {
outline: 2px solid var(--purple);
}
<form action="" method="get" class="form" onsubmit="return false;">
2 . form eventlistener 함수에 event.preventDefault(); 넣기const form = document.querySelector("form");
form.addEventListener("submit", (event) => {
event.preventDefault();
});