[react] 리액트 네이티브에서의 컴포넌트 간 상태 공유

리액트 네이티브 앱을 개발하다 보면 여러 개의 컴포넌트 간에 상태를 공유해야 하는 경우가 많습니다. 이번 포스트에서는 리액트 네이티브에서 컴포넌트 간 상태를 공유하는 방법에 대해 알아보겠습니다.

상태 공유의 필요성

리액트 네이티브 앱에서 여러 컴포넌트가 하나의 상태를 공유해야 하는 경우가 많습니다. 예를 들어, 사용자가 인증된 상태인지를 확인하는 데에 사용하는 상태를 다수의 화면에서 사용해야 하는 경우가 그런 예시입니다. 이런 상황에서는 각 컴포넌트에 중복된 상태를 유지함으로써 코드의 유지보수성이 떨어질 수 있습니다. 따라서 상태 공유의 필요성을 알고 있어야 합니다.

Context API를 사용한 상태 공유

리액트 네이티브에서는 Context API를 활용하여 상태를 공유할 수 있습니다. Context API를 사용하면 전역적으로 사용할 수 있는 상태를 관리할 수 있어 여러 컴포넌트 간의 상태 공유에 적합합니다. createContext 함수를 사용하여 새 Context 객체를 생성하고, Provider 컴포넌트를 활용하여 해당 상태를 하위 컴포넌트에 제공할 수 있습니다.

아래는 Context API를 사용하여 상태를 공유하는 간단한 예시 코드입니다.


import React, { createContext, useState, useContext } from 'react';

// 새 Context 객체 생성
const AuthContext = createContext();

// Provider 컴포넌트 정의
const AuthProvider = ({ children }) => {
  const [isAuthenticated, setIsAuthenticated] = useState(false);
  
  return (
    <AuthContext.Provider value={{ isAuthenticated, setIsAuthenticated }}>
      {children}
    </AuthContext.Provider>
  );
}

// 자식 컴포넌트에서 useContext를 사용하여 상태 공유
const ChildComponent = () => {
  const { isAuthenticated, setIsAuthenticated } = useContext(AuthContext);
  
  return (
    // 상태를 이용한 렌더링 등의 로직 작성
  );
}

결론

리액트 네이티브 앱에서 여러 컴포넌트 간에 상태를 공유하는 방법에 대해 알아보았습니다. Context API를 사용하여 상태를 공유하는 것은 유용한 방법 중 하나입니다. 이를 통해 코드의 유지보수성을 높이고 중복된 상태 관리를 피할 수 있습니다.

이제 여러분은 리액트 네이티브 앱에서 상태를 효과적으로 공유할 수 있는 방법을 알게 되었습니다. 이를 활용하여 더 나은 앱을 개발할 수 있기를 바랍니다!

참고 자료