gpt4 book ai didi

flutter - Flutter中位于回调​​函数前面的括号内的变量是否作为参数传递给这些回调函数?

转载 作者:行者123 更新时间:2023-12-03 04:43:00 25 4
gpt4 key购买 nike

通常,为了清楚起见,在这些示例中,括号的性质及其内容(内容在Ex1中为context,在Ex2中为无)?
例1。

ChangeNotifierProvider(
create: (context) {
return CartModel();
},
),
例2。
FlatButton(
onPressed: () {
print("yay button")
}
),
据我了解, { }括号内的代码是回调函数,仅当分别执行 createonPressed类的某些实例的 ChangeNotifierProviderFlatButton方法时才执行。
括号内容的本质是什么? 它们是否作为参数传递给回调函数的变量?
如果将它们作为参数传递给回调函数,为什么不使用第一个示例的语法:
ChangeNotifierProvider(
create: CartModel(context),
),

最佳答案

ChangeNotifierProvider(
create: CartModel(context),
),
这是一个以 CartModel作为参数的命名变量(“create”),该参数已由给定的 context作为构造函数参数创建。
ChangeNotifierProvider(
create: (context) {
return CartModel();
},
),
这是一个以 CartModel Function(Context)作为参数的命名变量(“创建”)。可以通过 ChangeNotifierProvider多次调用此函数。当 ChangeNotifierProvider调用该方法时,它将为它可以使用的方法提供 Context作为参数。
使用示例更新
这是一个显示行为的小代码示例:
class A {
B Function() createB;
B b;

A.callback({B Function() create}) : createB = create {
print('Class A created');
}

A.value({B create}): b = create {
print('Class A created');
}

void init() {
b = createB();
}
}

class B {
B() {
print('Class B created');
}
}

void main() {
A.value(create: B());
// Class B created
// Class A created

final a = A.callback(create: () => B());
// Class A created

a.init();
// Class B created
}

关于flutter - Flutter中位于回调​​函数前面的括号内的变量是否作为参数传递给这些回调函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62827806/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com