飞镖/颤振。子类无法访问父设置器功能

时间:2020-06-11 02:32:30

标签: flutter dart

abstract class ParentClass {
    Function _onChangeListener;

    set onChangeListener(Function value) {
        _onChangeListener = value;
    }

}

class ChildClass extends ParentClass {
    /// Some fancy stuff

    function testChangeListenerAccess() { 
        onChangeListener(testListener)/// error, The method onChangeListener is not defined.
    }

    function testListener() { 
    }

}

class SomeWidget {
   final ChildClass child = new ChildClass();

   @override
    Widget build(BuildContext context) {
        child.onChangeListener(onChange); /// Error with .onChangeListener. The method onChangeListener is not defined.
    }

    void onChange(){
        /// do fancy stuff
    }
}

由于某种原因,我似乎无法调用.onChangeListener。如果将其作为常规方法添加到ParentClass,则可以引用新方法。

清除上面我的意思。如果我将以下内容添加到ParentClass:

void onChangeListener(Function value){}

SomeWidget#build中的调用不会发生错误。我在做什么错了?

1 个答案:

答案 0 :(得分:1)

设置器与void函数不同。

child.onChangeListener = onChange;

应该可以解决问题。