将Context拆分到独立文件后结果重复的原因排查
问题分析与修复
问题根源
拆分Context后出现christychristy重复输出,核心原因是**routes/index.tsx中User组件的导入路径错误**:
import { User } from "../../fresh-project/islands/User.tsx";
该路径不符合项目实际目录结构(routes与islands为同级目录),错误的路径导致Fresh框架解析时重复渲染了User组件,从而两次输出Context的christy值。
修复步骤
将routes/index.tsx中的User导入路径修正为正确的相对路径,与Context2Provider的导入路径保持一致:
import Context2Provider from '../islands/Context.tsx' import { User } from "../islands/User.tsx"; // 修正此处路径 export default function App() { return ( <Context2Provider> <User /> </Context2Provider> ) }
修正后,User组件只会被渲染一次,输出结果将恢复为预期的christy。
补充说明
在Fresh框架中,Islands组件的导入路径必须精准,错误的相对路径会导致组件被重复注册或渲染。同时要确保Context的导出和导入逻辑一致,避免因模块解析问题产生多个Context实例(本次问题虽非Context实例重复,但路径规范同样重要)。
内容的提问来源于stack exchange,提问作者Ooker
相关产品推荐
相关产品推荐

