首页 > 解决方案 > 渲染映射()中的“x.[PropertyName] 不是函数”?

问题描述

我在 React 组件中的相关 tr 组之后添加了一个间隔 tr。我正在通过 map() 函数渲染行。我已向名为 IsLastItem 的集合中的最后一项添加了一个属性。我试图通过在 map() 末尾使用保护条件来防止 map() 函数在集合中的最后一项之后写出间隔行,如下所示:

              { y && {!y.IsLastItem} (
                <tr>
                  <td colSpan={4} style={{height:25}}></td>
                </tr>
              )}

但是,此实现会引发以下运行时错误:

y.IsLastItem 不是函数

我已经验证 IsLastItem 属性确实存在于集合中的最后一项上。即使最后一项上不存在 IsLastItem 属性,似乎也不应该出现任何运行时错误,因为 undefined 只会简单地评估为 false。知道我在这段代码中可能做错了什么吗?

标签: reactjs

解决方案


您正在使用用于函数的花括号。这就是为什么它具有误导性。你需要这样做:

{ y && y.IsLastItem && (
  <tr>
     <td colSpan={4} style={{height:25}}></td>
   </tr>
)}

希望这对你有用。


推荐阅读