Apache flex pushView()的空对象引用错误
据说,当使用Apache flex pushView()的空对象引用错误,apache-flex,view,flex-spark,Apache Flex,View,Flex Spark,据说,当使用navigator.pushView()方法将视图推送到屏幕时,我可以传递任何类型的数据。我只需传递一个数组,如下所示: var arr:Array=[4,5,6,7,8,9]; navigator.pushView(SecondView,arr); 在我的SecondView构造函数中,无论我如何尝试访问它的数据属性,我都会得到一个错误: 无法访问空对象引用的属性或方法 我做错了吗 必须调用构造函数来创建对象的实例。这必须在任何属性被赋予该对象的值之前完成 因此,我总是希望构造函
navigator.pushView()
方法将视图推送到屏幕时,我可以传递任何类型的数据。我只需传递一个数组,如下所示:
var arr:Array=[4,5,6,7,8,9];
navigator.pushView(SecondView,arr);
在我的SecondView构造函数中,无论我如何尝试访问它的数据属性,我都会得到一个错误:
无法访问空对象引用的属性或方法
我做错了吗 必须调用构造函数来创建对象的实例。这必须在任何属性被赋予该对象的值之前完成 因此,我总是希望构造函数中的数据属性为null 仔细阅读这本书。步骤1和2是解决此问题的要点:
您必须在构造函数之外的某个点访问数据属性。可能在事件侦听器中,例如initialize或creationComplete。可能是生命周期方法的一部分,例如updateDisplayList()或commitProperties() 您是否最终对SecondViews“data”属性中的数据进行了处理?如Api文档所示:“数据指定传递给视图的任何数据。此对象将写入新视图的view.data属性。”()因此,如果在SecondView中的数据属性设置器中执行某些操作,这可能会导致问题。嗯,除了pushView()方法外,我没有对SecondView的数据执行任何操作。我有一个commonView(extends-View)类,它指定了它自己的宽度和高度属性等,当然没有改变它的数据。我的SecondView扩展了commonView,这是否会导致空数据?如果是这样,我应该如何在pushView()方法中访问准确传递给SecondView的数据?谢谢你,非常感谢你两次帮助我!哈,我曾经认为这可能是构造函数的问题,并在我的视图中添加了Event.added的EventListener,但在pushView()方法中,此事件会多次分派。也许我应该试试其他类型的活动来做这件事。我想告诉你另一件事:我调用了PopupManager.addPopUp()在我的一个视图中显示一个警报窗口,代码被执行,但窗口从未显示。但是当我将这些代码放入根应用程序(ViewNavigatorApplication)并从我的视图中调用它时,如果我只能用这种方式使用弹出窗口?@Hubcin,而不检查您的代码;很难猜测问题出在哪里。您应该能够从任何组件创建弹出窗口。也许你应该就这个问题提出一个更详细的问题。