Stackflow의 UI플러그인이 Stack + React Router 구조에서 비정상적으로 동작합니다.
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 5/5
- Thời gian dự kiến
- Hơn một tuần
- Mức phù hợp với người mới
- 30/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Cần làm rõ
- Mức độ hoạt động
- Đình trệ
- Công nghệ
- react, typescript
- Lĩnh vực
- frontend
Hướng nghiên cứu
Bắt đầu bằng cách tái hiện animation bị lỗi với các cấu hình AppRouter, AuthStack và MainStack được hiển thị trong issue. Kiểm tra cách basicUIPlugin và historySyncPlugin hoạt động khi navigation vượt qua ranh giới /auth/* và /app/*; việc này sẽ xác định liệu composition này có được hỗ trợ hay không và ghi lại cấu trúc multi-stack được khuyến nghị.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
페이지들을 성격에 따라 분류해 몇개의 Stack 을 만들었습니다. 같은 Stack 내의 페이지들끼리는 stackflow 가 라우팅 처리를 하고, 다른 Stack 의 페이지로 이동할 시에는 리액트 라우터가 라우팅을 합니다.
같은 Stack 내의 페이지들은 url 베이스를 통일시켰고, 와일드카드를 추가해 라우터는 베이스url 만 구분하게 하였습니다.
그래서 베이스url 이 달라질 때에만 (서로 다른 Stack 으로 페이지 이동을 할 때에만) 리액트 라우터가 동작하게 하는게 의도였습니다.
그런데 기존의 stackflow 로만 페이지들을 관리할 때는 페이지 전환 애니메이션(UI플러그인) 이 깨지지 않았는데 같이 사용을 하니까 애니메이션이 정상적으로 동작을 하지 않는 문제가 발생하였습니다.
제 설계가 충돌을 일으킬만한, 혹은 stackflow 의 철학과 맞지 않는 설계인지 궁금합니다!
Stackflow의 플러그인/애니메이션/히스토리 체계에서, React Router + 여러 스택 조합이 애초에 Stackflow 설계 철학과 충돌하는 구조인지 궁금합니다.
만약 그렇다면, 페이지들을 관심사별로 stack 으로 묶어 여러 스택으로 페이지들을 관리하고 싶을 때 어떻게 하는지 궁금합니다.
현재 구조
React Router
앱의 상위 구획(인증 / 메인 앱)을 구분하는 데 사용
/auth/* → AuthStack
/app/* → MainStack
최상위 진입 시 /auth/login으로 리다이렉트
const AppRouter = () => {
const router = createBrowserRouter([
{
path: '/',
element: <Navigate to="/auth/login" replace />,
},
{
path: '/auth/*',
element: <AuthStack />,
},
{
path: '/app/*',
element: <MainStack />,
},
{
path: '*',
element: <div>404 Not Found</div>,
},
])
return <RouterProvider router={router} />
}
Stackflow - AuthStack
/auth/* 경로에서 작동
Stackflow가 내부 액티비티(페이지) 전환 관리
등록된 액티비티:
Login → /auth/login
TeamSelect → /auth/team-select
NickName → /auth/nickname
export const { Stack: AuthStack, useFlow: useAuthFlow } = stackflow({
transitionDuration: 350,
plugins: [
basicRendererPlugin(),
basicUIPlugin({ theme: 'cupertino' }),
historySyncPlugin({
routes: {
Login: '/auth/login',
TeamSelect: '/auth/team-select',
NickName: '/auth/nickname',
},
fallbackActivity: () => 'Login',
}),
],
activities: {
Login: LoginPage,
TeamSelect: TeamSelectPage,
NickName: NickNamePage,
},
})
Stackflow - MainStack
/app/* 경로에서 작동
Stackflow가 내부 액티비티(페이지) 전환 관리
등록된 액티비티:
Home → /app/home
LiveRecord → /app/live-record
export const { Stack: MainStack, useFlow: useMainFlow } = stackflow({
transitionDuration: 350,
plugins: [
basicRendererPlugin(),
basicUIPlugin({
theme: 'cupertino', // cupertino | android 두가지 옵션 있음
}),
historySyncPlugin({
routes: {
Home: '/app/home',
LiveRecord: '/app/live-record',
},
fallbackActivity: () => 'Home',
}),
],
activities: {
Home: HomePage,
LiveRecord: LiveRecordPage,
},
})
base url 과 와일드카드를 사용해 리액트 라우터가 baseurl 이 달라질 때에만 동작하도록 의도했는데 Stack 내에서 페이지 이동을 할 때 애니메이션이 깨집니다.
https://github.com/user-attachments/assets/56b391b4-c675-4934-bca8-f3a1f16b3799
- Ngôn ngữ chính
- TypeScript
- Star
- 1k
- Fork
- 114
- Merge trung bình
- 59 phút
- Pull request đã merge (30 ngày)
- 4
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của daangn/stackflow
-
스와이프 백 애니메이션 덜컥임 이슈Có thể làm lại được @Shennng đã nhận 222 ngày trước và không có pull request nào đang mở. Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 45/100
-
Vue3 지원 계획Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 25/100
-
다른 호스트로 이동해야할 때 처리에 관하여Đang mở
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 18/100
-
App 푸시로 앱에 들어왔을 때 뒤로가기 시 메인으로 이동Đang mở
Độ khó 4/5 3-5 ngày Mức phù hợp với người mới 25/100
Tất cả issue của daangn/stackflow
Issue tương tự
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
melgarafael/DeskcommCRM#3000 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 70/100
callstackincubator/simlock#639 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
aws/agentcore-cli#2606 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
🐛 [BUG] - FeatureComparisonTable text-only cells are top-aligned while icon cells are centeredĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
Maintainer thường phản hồi trong vòng 7 ngày
-
ai-driven-qa bug Cosmetic
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 74/100
Maintainer thường phản hồi trong vòng 1 ngày