我如何调用需要上下文的函数,从外部,内部小部件颤动

how can I call function that needs context, from outside, inside widgets in flutter

我想将位于不同文件中的函数调用到小部件中。 该函数需要小部件上下文。我怎样才能做到这一点 ?

// MyApp.dart
import 'foo';
class MyApp extends StatelessWidget {
  ...

  foo()

  @override
  Widget build(BuildContext context) {
   ...
}

--------
// foo.dart
void foo(){
  Navigator.of(context).pushNamed('/bar');
}

您将上下文传递给函数

void foo(BuildContext context){
  Navigator.of(context).pushNamed('/bar');
}

StatelessWidget 中只能调用需要来自 build() 的上下文的函数。

编辑: 正如@Pavel 评论的上下文在 StatefulWidget

的所有小部件函数中都可用