在Getx
中,当导航到新页面时,可以将数据作为“参数”传递到第二个页面:
Get.toNamed('/second', arguments: {});
或作为parameters
Get.toNamed('/second', parameters: {});
在这两种情况下,您都可以相应地使用Get.arguments
和Get.parameters
访问这些数据。
那么,如果两个概念达到相同的目的,它们为什么会有两个概念呢?
我注意到三个不同之处:
参数必须是字符串类型,参数可以是任何类型的。
2-参数被附加到指定的路由上,如so /second?parameter1=value1
,参数不会。
3- Getx中的某些类只能接受参数,而不能接受参数,例如:
尽管RouteSettings
需要指定的路由,但它只能接受参数,因此理论上它可以接受参数并在路由名称之后追加参数。
问候
发布于 2022-09-02 20:53:41
Get.parameters
将获取由查询字符串方法的parameters : {}
部分设置的Get.toNamed
值。因此,定义的参数将显示在浏览器的URL栏上。这通常用于web开发中,您需要显示一些东西(如id
),并让用户手动更改值以获得不同的数据/视图,具体取决于可用于筛选的参数。这就是为什么它以这样的格式出现( endpoint/?parameter1=value1
)。
Get.arguments
另一方面,不会在浏览器的URL栏上显示其值。在移动/桌面开发中,查询字符串并不是真正必要的,或者当您不希望用户能够在运行时直接修改查询字符串时,这通常会被使用。
https://stackoverflow.com/questions/73428908
复制相似问题