useFlow 순환참조 해결하기
stackflow()
함수가 반환하는 useFlow()
함수는 선언된 액티비티 타입을 활용해요. 따라서 useFlow()
와 액티비티 컴포넌트는 서로 맞물리면서 순환 참조(Circular Dependency)를 일으켜요.
useActions()
훅을 사용하고 타입을 따로 import
받으면 이러한 순환 참조를 제거할 수 있어요.
/** * stackflow.ts */import { stackflow } from "@stackflow/react";
export const { Stack, activities } = stackflow({ activities: { // ... }, // ...});
// 다음과 같이 액티비티의 타입을 노출해요.export type TypeActivities = typeof activities;
/** * useMyFlow.ts */import { useActions } from "@stackflow/react";
// 노출된 액티비티 타입만 가져와서 사용해요.import type { TypeActivities } from "./stackflow";
export const useMyFlow = () => { return useActions<TypeActivities>();};
⚡️
TypeActivities
는 앞으로 제공될 유틸 컴포넌트/훅 들에 비슷하게 활용돼요.