我有一个父母和两个孩子。我试图将数据从child1传递给child2,但不断收到错误消息:1061:通过带有静态类型的引用调用可能未定义的方法。
在child1中,我有以下代码:
[Bindable]
public var TestVar:String='sometext';
在child2中我试图获取TestVar的值,然后将其用作通过php搜索mysql数据库的值。:
var newTestVar:String = child1.TestVar;
if(newTestVar != null){
getResult.token = someService.get_filtered_Paged(newTestVar);
}
else{
getSecResult.token = someService.get_paged();
}
答案 0 :(得分:-1)
将public var TestVar:String='sometext';
更改为public static var TestVar:String='sometext';
您收到此错误的原因是您在静态上下文中尝试访问变量TestVar
时未将其标记为静态。
答案 1 :(得分:-1)
@ape是对的,你应该使用静态或使用MVC来注入属性。
答案 2 :(得分:-1)
您收到此错误是因为您将child1声明为child1实际上的超类。在那里定义TestVar是很自然的。最重要的是,超类不是动态的,因此您需要使用以下命令访问该字段:
child1["TestVar"];
这不会产生编译错误,如果child1持有的实例是正确的,那么在运行时访问该字段应该没有问题。
答案 3 :(得分:-1)
假设您在MyClass1中定义了TestVar
。将child1
投射到该类型:
var newTestVar:String = MyClass1(child1).TestVar;
如果这没有帮助,请发布更多部分代码。