-
Notifications
You must be signed in to change notification settings - Fork 393
Open
Description
Version
System:
OS: Linux 5.15 GNU/Linux 2 (lyra) 2 (lyra)
CPU: (64) x64 INTEL(R) XEON(R) PLATINUM 8582C
Memory: 224.40 GB / 247.51 GB
Container: Yes
Shell: 5.2.15 - /bin/bash
npmPackages:
@modern-js/app-tools: 2.69.4 => 2.69.4Details
在 modern.js 的 React Server Components(RSC)中,MPA 项目里如果多个入口页面引用同一个 server action(例如从 src/actions/shared.ts 导出的带 "use server" 的函数),开发或构建后只有其中一个入口能正常调用该 action,其它入口会报错无法找到对应的 server action,或被路由到错误的 action。
Reproduce link
无
Reproduce Steps
- 初始化一个启用 RSC 的 MPA 项目(多个 entries)。
- 在两个入口页面中同时引入并使用同一个 server action。
// src/actions/shared.ts
'use server';
export async function ping(message: string) {
return `ok: ${message}`;
}// src/entries/a/page.tsx
import { ping } from '../../actions/shared';
export default function PageA() {
return (
<form action={ping}>
<button type="submit">A 调用 ping</button>
</form>
);
}// src/entries/b/page.tsx
import { ping } from '../../actions/shared;
export default function PageB() {
return (
<form action={ping}>
<button type="submit">B 调用 ping</button>
</form>
);
}- 启动 dev 或构建并预览,访问两个入口页面,观察 server action 的调用结果。
预期行为
- 每个入口都应能正确绑定并调用同一个 server action,互不影响。
实际行为
- 只有一个入口能正常调用该 action。其它入口出现错误
Metadata
Metadata
Assignees
Labels
No labels