[react] 리액트 네이티브에서의 리덕스 상태 초기 데이터 로딩
리액트 네이티브 애플리케이션에서 리덕스를 사용하다 보면 초기 데이터를 로딩하는 것이 중요합니다. 이 글에서는 리액트 네이티브 앱에서 리덕스 상태를 초기화하고 데이터를 로딩하는 방법을 알아보겠습니다.
1. 리덕스 상태 초기화
리액트 네이티브 앱에서 리덕스를 사용하여 상태를 관리할 때, 앱이 시작될 때 리덕스 상태를 초기화해야 합니다. 일반적으로 앱이 시작될 때 초기 데이터를 불러와 리덕스 상태를 설정합니다.
예를 들어, App.js
파일에서 다음과 같이 초기 데이터를 불러와 리덕스 상태를 설정할 수 있습니다.
import React, { useEffect } from 'react';
import { useDispatch } from 'react-redux';
import { fetchInitialData } from './actions';
const App = () => {
const dispatch = useDispatch();
useEffect(() => {
dispatch(fetchInitialData());
}, [dispatch]);
// 앱의 나머지 부분 렌더링
}
위 코드에서 fetchInitialData
액션을 디스패치하여 초기 데이터를 불러옵니다.
2. 데이터 로딩 상태 처리
초기 데이터를 불러오는 동안 로딩 상태를 처리해야합니다. 이를 위해 리덕스 상태에 isLoading
과 같은 필드를 추가하여 데이터가 로딩 중인지 여부를 추적할 수 있습니다.
리덕스 액션을 디스패치하여 데이터를 로딩하고 있는 동안 isLoading
상태를 true
로 설정하고, 데이터 로딩이 완료되면 isLoading
상태를 false
로 설정합니다.
예시:
// 액션에서
const fetchInitialData = () => {
return async (dispatch) => {
dispatch({ type: 'FETCH_INITIAL_DATA_REQUEST' });
try {
// 데이터를 불러옴
dispatch({ type: 'FETCH_INITIAL_DATA_SUCCESS', data });
} catch (error) {
dispatch({ type: 'FETCH_INITIAL_DATA_FAILURE', error });
}
};
};
// 리듀서에서
const initialState = {
data: null,
isLoading: false,
};
const reducer = (state = initialState, action) => {
switch (action.type) {
case 'FETCH_INITIAL_DATA_REQUEST':
return {
...state,
isLoading: true,
};
case 'FETCH_INITIAL_DATA_SUCCESS':
return {
data: action.data,
isLoading: false,
};
case 'FETCH_INITIAL_DATA_FAILURE':
return {
...state,
isLoading: false,
};
default:
return state;
}
};
이제 리액트 네이티브 앱에서 리덕스를 사용하여 초기 데이터를 로딩하고 상태를 초기화하는 방법에 대해 알아보았습니다. 초기 데이터 로딩에 관련된 추가 정보를 얻고 싶다면 공식 리액트 네이티브 문서를 참고해보세요.