在 Flutter Getx 中,`Get.parameters` 和 `Get.arguments` 有什么区别?

MOH*_*SIM 6 flutter flutter-layout flutter-getx

Getx导航到新页面时,您可以将数据作为“参数”传递到第二页:

Get.toNamed('/second', arguments: {});
Run Code Online (Sandbox Code Playgroud)

或作为parameters

Get.toNamed('/second', parameters: {});
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,您都可以使用Get.argumentsGet.parameters相应地访问这些数据。

那么,如果两个概念达到相同的目的,为什么还会有两个概念呢?

我注意到三个差异:

1-参数必须是String类型,参数可以是任何类型。

2-参数像这样附加到命名路由/second?parameter1=value1,而参数则不然。

3- Getx 中的某些类只能接受参数,而不接受形参,例如:

RouteSettings尽管它需要命名路由,但只能接受参数,因此理论上它可以接受参数并将它们附加在路由名称之后。

问候

Tam*_*mma 4

Get.parameters

将获取由该方法的一部分设置的查询字符串的值。这样,定义的参数就会显示在浏览器的地址栏上。这通常用于 Web 开发,您需要显示一些内容(例如s)并让用户手动更改值以获取不同的数据/视图,具体取决于可用于过滤的参数。这就是为什么它以这种格式出现parameters : {}Get.toNamedidendpoint/?parameter1=value1

Get.arguments

另一方面,不会在浏览器的 URL 栏上显示其值。这通常用于移动/桌面开发,其中查询字符串并不是真正必要的,或者当您不希望用户能够在运行时直接修改它时。