[strapi]从 4.9.2 升级到 4.11.0 后动态区域中断

2024-05-13 268 views
7
错误报告 所需的系统信息
  • Node.js 版本:16
  • NPM 版本:6
  • 斯特拉皮版本:4.11.0
  • 数据库:postgres
  • 操作系统:ios
描述错误

从 4.9.2 升级到 4.11.0 后,在尝试使用动态区域中的组件后,strapi admin 会出现“糟糕!出了问题。请重试”。

重现行为的步骤
  1. 在 Strapi 管理用户界面中,使用动态区域转到任何集合类型。
  2. 单击动态区域中的任意组件进行添加
  3. 查看错误“糟糕!出了点问题。请重试”并且控制台记录:
TypeError: Cannot read properties of undefined (reading 'attributes')
    at Object.entries.reduce (content-manager.4e46c41a.chunk.js:6660:67)
    at Array.reduce (<anonymous>)
    at findAllAndReplace (content-manager.4e46c41a.chunk.js:6651:39)
    at content-manager.4e46c41a.chunk.js:6782:40
    at produce (main.e40cee3e.js:45810:15892)
    at reducer (content-manager.4e46c41a.chunk.js:6728:32)
    at Object.fi [as useReducer] (main.e40cee3e.js:75945:451)
    at exports.useReducer (main.e40cee3e.js:86305:274)
    at EditViewDataManagerProvider (content-manager.4e46c41a.chunk.js:7052:56)
    at Xh (main.e40cee3e.js:75942:137)
预期行为

预计能够使用该区域中的组件:)

截图

点击之前 UI 的样子:

图像

单击任何组件时用户界面的外观:

图像 代码片段

这是其中一个组件的架构示例:

{
  "collectionName": "components_landing_pages_big_numbers",
  "info": {
    "displayName": "Big Numbers",
    "description": "",
    "icon": "bold"
  },
  "options": {},
  "attributes": {
    "header": {
      "type": "text",
      "required": false
    },
    "items": {
      "type": "component",
      "repeatable": true,
      "max": 4,
      "min": 2,
      "component": "landing-pages.big-number-item"
    },
    "disclaimer": {
      "type": "text"
    },
    "backgroundColor": {
      "type": "enumeration",
      "enum": [
        "None",
        "Yellow",
        "Alpha"
      ],
      "default": "None"
    }
  }
}

我的包 json:

"dependencies": {
    "@strapi-community/strapi-provider-upload-google-cloud-storage": "^4.5.6",
    "@strapi/plugin-graphql": "4.11.0",
    "@strapi/plugin-i18n": "4.11.0",
    "@strapi/plugin-seo": "^1.9.1",
    "@strapi/plugin-users-permissions": "4.11.0",
    "@strapi/strapi": "4.11.0",
    "knex": "2.4.0",
    "pg": "8.5.1",
    "slugify": "^1.5.3",
    "strapi-plugin-duplicate-button": "^1.1.7",
    "styled-components": "^5.3.3"
  },

如果我可以提供更多背景信息,请告诉我,谢谢

回答

7

当我接近截止日期时我也有同样的事情。现在我无法输入我的内容,这真的很紧急,需要解决!

我这边的背景:

  1. 仅当我尝试从动态区域中选择其中包含嵌套组件的组件时,才会出现错误。这意味着我可以选择一个仅包含文本字段的组件,但无法选择其中包含嵌套其他组件的组件。
  2. 降级并不能解决问题。
  3. 我在本地和我的生产服务器上都有这个
1

我再次测试,也可以确认这只发生在具有嵌套组件的组件上。

3

感谢大家的报告 - 这是一个疏忽,现在有一个 PR 可以解决这个问题

4

好的,该版本中的任何预计到达时间可以解决此问题吗?因为我真的需要尽快修复(-:

0

好的,该版本中的任何预计到达时间可以解决此问题吗?因为我真的需要尽快修复(-:

PR 已开放,目标是 4.11.1,我们希望在周一发布。我现在只能说这么多。如果周末妨碍您,您可以暂时使用 patch-package,直到补丁发布。

8

好的,谢谢回复,我明白了。您能否详细说明一下补丁包以及我如何同时“使用”它?

0

@joshuaellis当我使用补丁包并更改文件node_modules/@strapi/admin/admin/src/content-manager/components/DynamicZone/index.js并运行时yarn patch-package @strapi/strapi我会There don't appear to be any changes回来。虽然我更改了文件,但我可以确认,因为当我在本地运行 Strapi 时问题已解决。

编辑 明白了,我需要修补软件包@strapi/admin而不是@strapi/strapi.

现在它可以在我的产品环境中再次运行了!

5

天啊——这给我带来了好几个小时的问题!很高兴找到这个修复。

5

我不确定这是否是完全相同的问题(我可以打开新的票证,但它似乎相关),但在使用动态区域加载集合类型时,我得到相同的错误页面。不过,当我打开该集合类型的条目时,我就会收到错误,而不是在尝试添加到动态区域时收到错误。

我尝试使用 来应用补丁patch-package,但似乎并没有解决问题。

我的控制台日志输出略有不同:

react_devtools_backend_compact.js:2367 TypeError: Cannot read properties of undefined (reading 'Root')
    at _n (content-manager.25c6d328.chunk.js:770:10202)
    at Ju (main.0b04b030.js:488:20587)
    at Mh (main.0b04b030.js:490:45446)
    at Oh (main.0b04b030.js:490:41049)
    at Ch (main.0b04b030.js:490:40977)
    at Ff (main.0b04b030.js:490:40829)
    at lc (main.0b04b030.js:490:37074)
    at eh (main.0b04b030.js:490:36002)
    at H (main.0b04b030.js:529:1553)
    at MessagePort.We (main.0b04b030.js:529:1923)
9

这看起来像是对反应开发工具的某种干扰。我会看看你的扩展

1

应用补丁后,现在可以将项目添加到动态区域,但是我在导航时仍然遇到问题。如果我打开一个具有动态区域(页面)的条目,然后单击“后退”或侧边栏中的集合类型名称,则会收到运行时错误。这个问题已经解决了还是应该作为一个新问题来打开?

1

@joshuaellis 在禁用 React 开发工具和 Strapi 4.11.1 时我仍然遇到相同的错误:

main.76fb801e.js:490 TypeError: Cannot read properties of undefined (reading 'Root')
    at Jn (content-manager.55dedc2e.chunk.js:770:10202)
    at Ju (main.76fb801e.js:488:20588)
    at Mh (main.76fb801e.js:490:45446)
    at Oh (main.76fb801e.js:490:41049)
    at Ch (main.76fb801e.js:490:40977)
    at Ff (main.76fb801e.js:490:40829)
    at lc (main.76fb801e.js:490:37074)
    at eh (main.76fb801e.js:490:36002)
    at V (main.76fb801e.js:529:1568)
    at MessagePort.ze (main.76fb801e.js:529:1937)
8

对于仍然遇到此问题的人,请确保更新 package.json 中所有与 Strapi 相关的依赖项,而不仅仅是 Strapi 核心。删除 .cache 和 package.lock 并再次运行构建。