1. 둘을 모두 가지고 있는 부모 컴포넌트에 useState 선언
function App() {
// contentlist state 선언
const [ContentList, setContentList] = useState([])
return (
<>
<Heading />
<Routes>
<Route
path="/Upload"
element={
// contentlist state를 공유
<Upload ContentList={ContentList} setContentList={setContentList} />
}
/>
<Route
path="/List"
element={
// contentlist state를 공유
<List ContentList={ContentList} setContentList={setContentList} />
}
/>
</Routes>
</>
)
}
2. state를 받는 자식은 props를 통해 받음
// props로 contentlist, setcontentlist 모두 받음.
const Upload = (props) => {
const [Content, setContent] = useState('')
const onSubmit = () => {
let tempArr = [...props.ContentList]
tempArr.push(Content)
props.setContentList([...tempArr])
setContent('')
}
return (
<div>
<input
type="text"
value={Content}
onChange={(event) => {
setContent(event.currentTarget.value)
}}
/>
<button
onClick={() => {
onSubmit()
}}
style={{ marginBottom: '1rem' }}
>
제출!
</button>
</div>
)
}