Flutter Navigator 2.0 的主要机制之一是 RouterDelegate > build > Navigator 中的 onPopPage 函数。但是,我不明白 route.didPop(result) 何时返回 false。
我们可以使用John Ryan 的著名例子来说明我的问题。他的演示代码。
onPopPage: (route, result) {
if (!route.didPop(result)) {
return false;
}
// Update the list of pages by setting _selectedBook to null
_selectedBook = null;
show404 = false;
notifyListeners();
return true;
},
Run Code Online (Sandbox Code Playgroud)
在我所有的测试中,使用 AppBar 自动生成的后退按钮,route.didPop(result) 返回 true。
文档保持不变:
bool didPop(dynamic result)
package:flutter/src/widgets/navigator.dart
A request was made to pop this route. If the route can handle it internally (e.g. because …Run Code Online (Sandbox Code Playgroud) 我有一个关于 Flutter 中的 Provider 包的 Consumer 的问题。我不明白在 Consumer 的构建器中参数“child”的目的
Consumer<MyModel>(builder: (context, myModel, child) {
// doing stuff using myModel variable
});
Run Code Online (Sandbox Code Playgroud)
我找不到任何关于它的文档。
我不太明白 Provider.of() 和 Consumer 之间的区别。我在这里读到Consumer 就像 Provider.of 一样,带有listen: true。
但是,在下面的示例中,当我使用 Consumer 时我没有收到错误,但在使用 Provider.of 时却收到错误。我被迫使用listen: false。下面的示例是实现了 ChangeNotifierProvider 的默认 flutter 应用程序。
我只需更改 main.dart 中的 floatActionButton 中的代码即可查看 Consumer、Provider.of Listen: true 和 Provider.of Listen: false 之间的差异
counter.dart代码
import 'package:flutter/material.dart';
class Counter extends ChangeNotifier {
int value = 0;
void increment() {
value++;
notifyListeners();
}
void decrement() {
value--;
notifyListeners();
}
}
Run Code Online (Sandbox Code Playgroud)
main.dart 的完整代码,其中包含使用 Consumer 的浮动操作按钮。这是工作
import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'package:unit_test/counter.dart';
void main() {
runApp(MyApp());
}
class MyApp extends StatelessWidget {
// …Run Code Online (Sandbox Code Playgroud) 我有一个新手 Directus 问题:
\n我尝试跟随文档但徒劳:
\nnpm init directus-project example-projectcd example-project; npx directus starthttp://0.0.0.0:8055/admin/contentcd ..,离开我的 directus 项目,npm init directus-extension/到/hellosrc/index中cd demo-directus-endpoint; npm run buildhttps://docs.directus.io/extensions/creating-extensions/
\nTo deploy your extension, you have to …Run Code Online (Sandbox Code Playgroud)