Notice
Recent Posts
Recent Comments
07-18 18:23
«   2025/07   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
Archives
Today
Total
관리 메뉴

YESHTML5

Object 불변성 유지할수있게, useObject hooks 기반 본문

React,React-Native

Object 불변성 유지할수있게, useObject hooks 기반

슬/도/아/밤/ 2022. 5. 25. 18:53
반응형

useState에서 Object 즉 JSON형태로 저장한다.

이전에 값이 있는경우 대체되어버리기때문에, 기존의값 그대로 뒤에로  override형태로 덮어쓴다. 

const [json, setJson] = useObject({ title: 'test' }) 형태로 사용하고 싶어서,  만든 코드 올려본다.
 
/**
 * @name useObject
 * @description
 */
import {useCallback, useState} from 'react'

// Hook
export const useObject = (initialState: {} = {}): any => {
  // Initialize the state
  const [state, setState] = useState<object>(initialState)
  const update = useCallback(
    (data): void =>
      setState(prevState => {
        return {...prevState, ...data}
      }),
    [],
  )
  return [state, update]
}
/********************************************************
[사용법]
import { useObject } from '@app/lib/hooks/useObject'
const Debug = () => {
  const [json, setJson] = useObject({ title: 'test' })
  return (
    <Container>
      <Button onPress={() => { setJson({ 'random_number': Math.random() * 1000 }) }}>
        정보가져오기
      </Button>
      <Text>{JSON.stringify(json, null, 1)}</Text>
    </Container>
  )
}
export default Debug
*********************************************************/
반응형
Comments