0

我正在使用一个List我需要在开始时为空的。我通过单击按钮根据需要向其中添加项目。由于它是空的,我没有添加dataProvider属性

<s:List id="thelist" itemRenderer="listIR" />

要添加一个项目,我将它dataProvider直接添加到

thelist.dataProvider.addItem()

但是当我这样做时,它给了我这个错误

 #1009: Cannot access a property or method of a null object reference.

Alert此外,我在itemRenderer 本身中进行了调试listIR,我看到创建列表时,我收到两次警报,就像创建了 2 个 itemRenderers 一样,即使列表在开始时应该是空的。

任何想法这个 itemRenderer 有什么问题?如何从一个空的 dataProvider 开始并顺利添加项目?

4

2 回答 2

1

因为没有设置 list.dataProvider,所以这个值最初为 null。所以 null.addItem() 是不可能的。

在调用 addItem(); 之前,您应该在调试时看到一个实例化的 Array 或 ArrayCollection 作为 dataProvider;

修复 1:由 << Daniel Engmann >> 描述

修复2:

if(!thelist.dataProvider) thelist.dataProvider = new ArrayCollection();
thelist.dataProvider.addItem();
于 2010-05-25T07:50:26.727 回答
1

List 的 dataProvider 为 null。您必须设置 IList 或 ICollectionView 接口的空实现,例如:

<s:List id="thelist" itemRenderer="listIR" dataProvider="new ArrayCollection()"/>
于 2010-05-25T07:25:45.880 回答