TypeError: Cannot read property 'forEach' of undefined jest
TypeError: Cannot read property 'forEach' of undefined jest
我在使用 jest 的测试套件 运行 中遇到了这个错误,尽管它在 react 编译时正常工作。
请查看下面的错误和代码截图。
您正在测试 !== null
,但您的 data
没有 属性 tags
(并且 react/typescript 不知道这一点)。所以你的 data.tags
被评估为 undefined
.
if(data.tags !== null && data.tags !== undefined) {
或
if(data.tags) {
会起作用。
当你遇到 of undefined
问题时,总是向左看,所以在这里你无法读取 forEach of undefined... 即没有 forEach 属性 on undefined... undefined 如 Javascript undefined.
那么 forEach 调用的是什么 - 标签。所以数据上没有标签 属性,也就是 未定义 。您最好使用类似的东西;
if (data.tags) {
data.tags.forEach((tag: Tag) => {
tags.push({ label: tag.label, value: tag.value})
}
}
if (data.tags)
将检查 null、undefined 和 false。
您可以使用条件链接来检查 data.tags 是否不无效以及标签 属性 上是否存在 forEach 方法以避免错误。但请确保您传递的数据正确。
const tags:any = [];
data.tags?.forEach?.((tag: Tag) => {
tags.push({ label: tag.label, value: tag.value})
}
我在使用 jest 的测试套件 运行 中遇到了这个错误,尽管它在 react 编译时正常工作。 请查看下面的错误和代码截图。
您正在测试 !== null
,但您的 data
没有 属性 tags
(并且 react/typescript 不知道这一点)。所以你的 data.tags
被评估为 undefined
.
if(data.tags !== null && data.tags !== undefined) {
或
if(data.tags) {
会起作用。
当你遇到 of undefined
问题时,总是向左看,所以在这里你无法读取 forEach of undefined... 即没有 forEach 属性 on undefined... undefined 如 Javascript undefined.
那么 forEach 调用的是什么 - 标签。所以数据上没有标签 属性,也就是 未定义 。您最好使用类似的东西;
if (data.tags) {
data.tags.forEach((tag: Tag) => {
tags.push({ label: tag.label, value: tag.value})
}
}
if (data.tags)
将检查 null、undefined 和 false。
您可以使用条件链接来检查 data.tags 是否不无效以及标签 属性 上是否存在 forEach 方法以避免错误。但请确保您传递的数据正确。
const tags:any = [];
data.tags?.forEach?.((tag: Tag) => {
tags.push({ label: tag.label, value: tag.value})
}