반응형
Q. 버튼을 클릭시, 버튼 아래에 컴포넌트 Diary가 toggle이 되도록 바꾸어 보자.
import React from 'react';
import './App.scss';
function App() {
return (
<div className="App">
<button>show diary</button>
// 다이어리 위치
</div>
);
}
function Diary(){
return(
<div className="diary">
<h2>제목</h2>
<p>날짜</p>
<p>상세내용</p>
</div>
)
}
export default App;
A.
1. 먼저 Diary의 상태를 변수로 담는다.
import React, { useState } from 'react';
let [diaryState, diaryStateFunc] = useState(false);
2. 삼항연산자를 이용하여, diary 상태에 따라 삽입여부를 결정하게 한다.
<button onClick={ ()=>{ diaryStateFunc( !diaryState ) } }>show diary</button>
{ diaryState ? <Diary /> : null }
데이터 바인딩과 동일하게 html 구조 사이에 script를 삽입하고 싶을 때엔, 중괄호{ }를 이용하면 된다. 단, 중괄호 안에서의 if문은 인식하지 못하기 때문에 사용해서는 안된다.
여기서 null은, 일종의 JXS 관습으로, 아무것도 넣지 않길 희망할 때 사용하는 코드이다.
import React, { useState } from 'react';
import './App.scss';
function App() {
let [diaryState, diaryStateFunc] = useState(false);
return (
<div className="App">
<button onClick={ ()=>{ diaryStateFunc( !diaryState ) } }>show diary</button>
{
diaryState ? <Diary></Diary> : ''
}
</div>
);
}
function Diary(){
return(
<div className="diary">
<h2>제목</h2>
<p>날짜</p>
<p>상세내용</p>
</div>
)
}
export default App;
반응형
'React (old ver) > basic' 카테고리의 다른 글
props, 부모의 state를 가져와 보자. (0) | 2021.10.30 |
---|---|
반복문은 map을! (중괄호 { } 안 for 역시 인식하지 못해) (0) | 2021.10.29 |
Component 2, 파일 분리 (모듈화) (0) | 2021.10.29 |
Component 1, function 컴포넌트() (0) | 2021.10.29 |
state를 이용한 데이터 바인딩 (0) | 2021.10.29 |
댓글