相关疑难解决方法(0)

在Flutter的嵌套导航器结构中,如何获得特定的导航器?

当我有Nested时,我遇到了这个问题Navigator。所以像

class App extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      initialRoute: "/",
      routes: {
        '/': (context) => SomeOneView(),
        '/two': (context) => SomeTwoView(),
        '/three': (context) => SomeThreeView(),
      },
    );
  }
}

class SomeOneView extends StatefulWidget {
  @override
  _SomeOneViewState createState() => _SomeOneViewState();
}

class _SomeOneViewState extends State<SomeOneView> {
  @override
  Widget build(BuildContext context) {
   return Container(
      width: double.infinity,
      height: double.infinity,
      color: Colors.indigo,
      child: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          MaterialButton(
            color: …
Run Code Online (Sandbox Code Playgroud)

flutter flutter-navigation

9
推荐指数
2
解决办法
1456
查看次数

无法在此小部件上方找到正确的提供者

我在使用 Flutter Provider 时遇到了问题......我的流程是这样的:登录用户 ID 被传递给新的小部件后 -> 从那里执行保存到数据库,然后重定向到新的小部件(仪表板)。

这是登录后小部件的代码:

return MaterialApp(
      title: title,
      home: Scaffold(
          appBar: AppBar(
            title: Text(title),
          ),
          body: ListView(
            children: <Widget>[
              Container(
                margin: EdgeInsets.all(8.0),
                child: Card(
                  shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.all(Radius.circular(8.0))),
                  child: InkWell(
                    onTap: () {
                      var user = Provider.of<UserRepository>(context);
                      user.savePreference(user.user.id, "Something");
                      user.navigateToNewPage(Dashboard(), context);
                      print(user.user.id);
                    },
Run Code Online (Sandbox Code Playgroud)

这有效:

user.savePreference(user.user.id, "Something");
Run Code Online (Sandbox Code Playgroud)

但这导致了一个问题:

user.navigateToNewPage(Dashboard(), context);
Run Code Online (Sandbox Code Playgroud)

在仪表板小部件中,我正在创建:

 Widget build(BuildContext context) {
    var user = Provider.of<UserRepository>(context);
Run Code Online (Sandbox Code Playgroud)

在 UserRepository 我有这个:

class UserRepository with ChangeNotifier {
  User user;
  Status _status = Status.Uninitialized;

  Status get status …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-provider

6
推荐指数
4
解决办法
3万
查看次数