JSX 문법으로 쓰여진 코드들은 render()
메소드의 return문 안에 들어간다.
그리고 destructring 을 하거나, 변수를 선언할 일이 있으면 무조건 render 메소드 안에 해야한다. 컴포넌트 내부에 render 안이 아닌 곳은 모두 함수가 들어가야하는 자리이므로.
원래 handleId , handlePw 메소드를 각각 따로 만들어서
userId : e.target.value;
userPw : e.traget.value;
로 썼었는데,{}
중괄호 안에 써준다.goToMain
메소드를 만들어서 버튼을 클릭시, router에서 /main-doyoon
으로 정의한 곳으로 가게 하였다.
다른 두가지 스타일을 각각 button_active
, button_disabled
에 넣고, 삼항연산자를 사용하여 조건을 만족했을 때 class이름을 바꿔주는 방식으로 적용하였다.
마찬가지로 삼항연산자를 사용하여 버튼의 활성화를 조작하였다. disabled=true
일 경우 버튼은 비활성화되고, disabled=false
일 경우 버튼이 정상적으로 작동하게 하였다.
main.js 에는 쪼개놓은 컴포넌트들을 넣는다.
아래의 코드들은 feed 컴포넌트 내부의 모습이다.
getVal 메소드는 input에 입력되는 value값을 가져온다.
addComment는 입력된 값을 userInfo 라는 객체에 Id, Comment로 나누어서 담아준 후, setState를 사용하여 위에서 state 에 만들어놓은 빈 배열 list에 쭉 넣어주었다.
list는 이제 배열 안에 객체가 들어가 있는 형태이다.
[ {userId : 'amberinging', userComm:'맛있겠다!'}, {userId : 'amberinging', userComm:'멋지네요'} ]
userId로 나중에 로그인한 사용자의 Id를 가져와서 쓰면 될 것 같다. (추가로 구현해보고싶은것)