我有一个名为BotonEnviar的小部件,用于在点击时启动自定义函数:
class BotonEnviar extends StatelessWidget {
BotonEnviar({Key? key, required this.funcion, required this.texto}) : super(key: key);
final void Function() funcion;
final String texto;
@override
Widget build(BuildContext context) {
return Container(
height: 40,
width: 180,
child: ElevatedButton(
onPressed: () {
print("pulsado enviar visto en el widget del boton");
this.funcion;
},
child: Text(
'${this.texto}' ,
style: TextStyle(color: Colors.white,fontSize: 18),
),
),
);
}
}
这里有一个使用BotonEnviar
的类:
...
SizedBox(
height: 15,
),
BotonEnviar(funcion: () {
print("pulsado boton");
PublicarTema().publicarTema(temaController.text);
}, texto: 'Enviar',
),
...
在本例中,我需要执行PublicarTema().publicarTema(temaController.text);当点击BotonEnviar时。
下面是PublicarTema()
类:
class PublicarTema {
publicarTema(String titulo){
//accion al pulsar boton ENVIAR
print("itulo recibido ${titulo}");
}
}
我想我没有按照我应该做的去做任何事情。我想要的是在我的应用程序中保持一个干净的代码。
我点击BotonEnviar后得到的只是以下输出:
print("pulsado enviar visto en el widget del boton");
而不是来自
print("itulo recibido ${titulo}");
我该改什么?
2条答案
按热度按时间qxgroojn1#
调用函数时忘记了括号。将
this.funcion;
替换为this.funcion();
。zrfyljdw2#
在函数调用中添加()将修复它。添加
this.funcion()