我正在使用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开始并顺利添加项目?
答案 0 :(得分:1)
List的dataProvider为null。您必须设置IList或ICollectionView接口的空实现,例如:
<s:List id="thelist" itemRenderer="listIR" dataProvider="new ArrayCollection()"/>
答案 1 :(得分:1)
因为没有设置list.dataProvider,所以此值最初为null。 所以null.addItem()是不可能的。
在调用addItem()之前,您应该在调试时看到实例化的Array或ArrayCollection作为dataProvider;
修复1: 由&lt;&lt; Daniel Engmann&gt;&gt;
修复2:
if(!thelist.dataProvider) thelist.dataProvider = new ArrayCollection();
thelist.dataProvider.addItem();