Reactjs &引用;TypeError:无法读取属性';长度';“未定义”的定义;仅在生产构建中
我已经用Reactjs &引用;TypeError:无法读取属性';长度';“未定义”的定义;仅在生产构建中,reactjs,Reactjs,我已经用create react app构建了一个应用程序,虽然在开发过程中一切正常,但一旦我运行npm run build并使用生产构建文件启动应用程序,我会得到: react-dom.production.min.js:156 Uncaught TypeError: Cannot read property 'length' of undefined at ri (react-dom.production.min.js:156) at gi (react-dom.produc
create react app
构建了一个应用程序,虽然在开发过程中一切正常,但一旦我运行npm run build
并使用生产构建文件启动应用程序,我会得到:
react-dom.production.min.js:156 Uncaught TypeError: Cannot read property 'length' of undefined
at ri (react-dom.production.min.js:156)
at gi (react-dom.production.min.js:167)
at Object.Oi [as useEffect] (react-dom.production.min.js:167)
at Object.t.useEffect (react.production.min.js:22)
at w (makeStyles.js:191)
at S (makeStyles.js:228)
at withStyles.js:55
at ai (react-dom.production.min.js:157)
at Ni (react-dom.production.min.js:176)
at Vu (react-dom.production.min.js:271)
我已经阅读了代码,在我尝试访问length
的任何地方都添加了可选的链接,但错误仍然存在。我不知道为什么这个错误只会在构建中出现,而不会在开发中出现。
我不能发布特定的代码,因为我不确定这个错误出现在哪里或为什么,所以欢迎使用任何指针
编辑:
如果我转到minified.js文件,它会说错误发生在这里
function Bh(a, b) {
if (null === b)
return !1;
for (var c = 0; c < b.length && c < a.length; c++)
if (!He(a[c], b[c]))
return !1;
return !0
}
功能Bh(a,b){
如果(空===b)
返回!1;
对于(var c=0;c
编辑2:
我已经注释了我访问的
length
的每一行代码,并删除了build
文件夹,再次运行npm run build
,但错误仍然存在
回答:我不知怎么解决了这个错误,但不知道怎么解决。我认为原因在于功能组件中的
makeStyles
和withStyles
,因为不需要在那里使用withStyles
。当我们试图访问数组类型的键
值并检查其长度时,就会发生这种情况。
例:
何处为
const someData = [
{
tags: []
},{
id: '1',
}
]
someData.map((x) => {
const length = x.tags.length; // [ERR]: Cannot read property 'length' of undefined
})
它在生产构建中不起作用的原因可能是,特定的
数据
缺少一些键
值。尝试检查该帐户的DB记录。如果查看react dom.production.min.js:156
,你看到了什么?@Dominik我已将其添加到帖子中。我对访问length
的每一行代码都进行了注释,并删除了build
文件夹,再次运行npm run build
,但错误仍然存在。
const someData = [
{
tags: []
},{
id: '1',
}
]
someData.map((x) => {
const length = x.tags.length; // [ERR]: Cannot read property 'length' of undefined
})