반응형
부모 컴포넌트 state상태와 setState 함수를 자식 컴퍼넌트에 넘겨준다.
/* 부모 컴포넌트 */
import React, {useState} from 'react'
import type {FC} from 'react'
/* 자식 컴포넌트 불러오기*/
import Child from './Child'
// 속성 타입 정의
export type Props = {
state: D.state
}
const Parent : FC<Props> = ({state: initialState}) => {
// 부모 useState 훅 정의
const [state, setState] = useState<D.state>({
...initialState,
counts: {comment: 0, retweet:0, heart: 0}
})
// 자식 컴포넌트
<Child state={state} setState={setState}/>
}
setter 함수 타입 만들어서 부모 컴포넌트에 업데이트된 상태 반환한다.
/*자식 컴포넌트*/
import React, {useCallback} from 'react'
import type {FC} from 'react'
// setter 타입 정의
export type childProps = {
state: D.State
setState: Dispatch<SetStateAction<D.State>>
}
const Child: FC<childProps> = ({state, setState}) => {
const comment = useCallback(
()=> setState((state)=> {...state, comment: comment + 1})
,[])
const retweet = useCallback(
()=> setState((state)=> {...state, retweet: retweet + 1})
,[])
const heart = useCallback(
()=> setState((state)=> {...state, retweet: retweet + 1})
,[])
return (...)
}
728x90
'모바일 APP > React-Native' 카테고리의 다른 글
공휴일 제외하는 함수 만들기 (0) | 2021.08.24 |
---|---|
아이폰 시뮬레이터 command + D 안될때 (0) | 2021.08.15 |
에러: TextInput placeholder 안될때 (2) | 2021.07.07 |
에러: Exception NSException * "`[FIRApp configure];` (`FirebaseApp.configure()` in Swift) could not find a valid GoogleService-Info.plist in your project. (0) | 2021.06.28 |
[ 패키지명 ] : mergeReleaseResources FAILED (0) | 2021.06.24 |