【问题标题】:Navigator 2.0 and DrawerNavigator 2.0 和抽屉
【发布时间】:2021-02-20 19:04:44
【问题描述】:

我使用 Flutter 的 2.0 导航,如官方示例中所述:https://medium.com/flutter/learning-flutters-new-navigation-and-routing-system-7c9068155ade。 我扩展了这个示例并在 BookDetailsS​​creen 中放置了一个抽屉。这个抽屉有一个 ListTile,它在 BookRouterDelegate 上调用 _handleHome:

void _handleHome() {
    _selectedBook = null;
    notifyListeners();
}

网址更改正确,但小部件保持不变。如果我在 BookDetailsS​​creen 上放置一个调用相同回调的按钮,一切都会按预期工作。

谁能告诉我我做错了什么?

【问题讨论】:

    标签: flutter


    【解决方案1】:

    如果你的RouterDelegate上的Navigator不变,你需要显式定义一个条件来处理null_selectedBook

    Navigator(
      key: navigatorKey,
      pages: [
        if (show404)
          MaterialPage(key: ValueKey('UnknownPage'), child: UnknownScreen())
        else if (_selectedBook != null)
          BookDetailsPage(book: _selectedBook)
        else // handle _selectedBook null
          MaterialPage(
            key: ValueKey('BooksListPage'),
            child: BooksListScreen(
              books: books,
              onTapped: _handleBookTapped,
            ),
          ),
      ]
    )
    

    【讨论】:

      猜你喜欢
      • 2021-08-22
      • 2019-04-04
      • 2017-08-25
      • 2019-05-22
      • 2023-03-08
      • 2021-03-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多