gpt4 book ai didi

javascript - 条件渲染不能防止渲染

转载 作者:行者123 更新时间:2023-12-03 00:23:39 25 4
gpt4 key购买 nike

我有这段代码:

document.lines && (<div>
<h4>Title1</h4>
{
document.lines
.concat(["end"])
.filter(Boolean)
.map((line, i) =>
<p key={i}>{line}</p>
)
}
</div>)

document.lines 时一切正常已验证。在我的一项测试中,我运行了一个虚假值。我以为document.lines &&会保护我,但不会。我遇到这个 typescript 错误:

TypeError: Cannot read property 'concat' of undefined

在 Angular 世界中,我会写 <div *ngIf="document.lines">在 vue 世界中我会写 <div v-if="document.lines"> 。我想我错过了一些与 react 有关的东西。

为什么我的守卫没有保护我?如何更改代码以避免出现问题?

最佳答案

通过这种方式,你的守卫只检查 document.lines 是否存在,而不检查它是否是一个数组。

改变你的警惕:

Array.isArray(document.lines) && ...

关于javascript - 条件渲染不能防止渲染,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54196540/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com