上一主题 下一主题
ScriptCat,新一代的脚本管理器脚本站,与全世界分享你的用户脚本油猴脚本开发指南教程目录
返回列表 发新帖

Remix框架React has detected a change问题

[复制链接]
  • TA的每日心情
    开心
    2023-2-28 23:59
  • 签到天数: 191 天

    [LV.7]常住居民III

    669

    主题

    5362

    回帖

    6270

    积分

    管理员

    非物质文化遗产社会摇传承人

    积分
    6270

    荣誉开发者管理员油中2周年生态建设者喜迎中秋

    发表于 2023-12-3 20:58:03 | 显示全部楼层 | 阅读模式

    这种情况是在使用了useContext等函数,下次提前返回导致hook的链条出现错误
    首先排查各函数是否存在提前return等问题
    然后排查是否存在框架与实现影响
    在本次最后定位到了meta函数的t导致

    export const meta: V2_MetaFunction = ({ data }) => {
      const {t}=useTransition()
      return [{ title: t('ScriptCat') }];
    };

    其中const {t}=useTransition()调用了useTransition
    而useTransition调用了useContext
    由于其框架会循环遍历meta
    一旦路由发生改变就会导致hook链的不正确
    解决方案就是在loader调用

     const t = await i18next.getFixedT(request);

    然后返回给meta函数进行直接使用

    混的人。
    ------------------------------------------
    進撃!永遠の帝国の破壊虎---李恒道

    入驻了爱发电https://afdian.net/a/lihengdao666
    个人宣言:この世界で私に胜てる人とコードはまだ生まれていません。死ぬのが怖くなければ来てください。

    发表回复

    本版积分规则

    快速回复 返回顶部 返回列表