为什么在CFC中元素未定义?

Car*_*arl 1 coldfusion cfc cfml coldfusion-11

我有一个相当简单的CFC,带有一组属性,然后是一些与这些属性相关的基本功能.除了作为阵列的属性外,一切似乎都能正常工作......

property name="tags" type="array";
Run Code Online (Sandbox Code Playgroud)

这是该物业的简单声明.但是,当我尝试在其中一个成员函数中对它执行操作时,我收到错误...

public void function addTag(thisTag) {
    var local.tags = this.getTags();
    if (thisTag.isObjectValid()) {          
        *ArrayAppend(local.tags,arguments.thisTag);*
        this.setTags(local.tags);
    }
}
Run Code Online (Sandbox Code Playgroud)

与星星的线是我得到错误的地方(星星不在代码中)

Element TAGS is undefined in LOCAL.
Run Code Online (Sandbox Code Playgroud)

我究竟做错了什么?

附加信息:

  1. accessors ="true"在组件声明中设置
  2. isObjectValid是另一个CFC中的自定义函数 - 它已经过测试和运行

Bra*_*ood 7

您尚未为tags属性设置默认值,因此它为null或未定义.您需要为其设置一个默认值,或者在尝试访问它之前在构造函数中指定一个值.或者,您可以按原样继续,但是您需要执行isNull(local.tags)来检查它是否已初始化.