有两个有状态小部件,我想从另一个 onTap 调用一个类中存在的方法。下面是简短的代码:
# NLP result
Parse = '(ROOT\n (S\n (NP (DT This))\n (VP (VBZ is)\n (NP (DT a) (NN test) (NN message)))\n (. .)))'
# output code
def output_nlp(Json_data, tokn, Pos, Ner, Parse, Dep_parse):
parse_tree = ParentedTree.fromstring(Parse)
parse_tree.pretty_print()
return "NLP Parse: \n {}".format(Parse)
是的,SecondClass 存在于 FirstClass 的小部件树中
答案 0 :(得分:1)
你可以这样做。如果您的 SecondClass
在 FirstClass
小部件树中。您可以在 SecondClass 上创建一个 Function onTap()
构造函数并在 FirstClass 上使用它的 onTap
class FirstClass extends StatefulWidget {
@override
_FirstClassState createState() => _FirstClassState();
}
class _FirstClassState extends State<FirstClass> {
void next() {
setState(() {
// SOME CODE
});
}
@override
Widget build(BuildContext context) {
return Center(
child: Column(
children: [
SecondClass(
onTap: () => next(),
)
],
),
);
}
}
class SecondClass extends StatefulWidget {
final Function onTap;
const SecondClass({Key key, this.onTap}) : super(key: key);
@override
_SecondClassState createState() => _SecondClassState();
}
class _SecondClassState extends State<SecondClass> {
@override
Widget build(BuildContext context) {
return Center(
child: ElevatedButton(
onPressed: () => widget.onTap(),
child: Text("BUTTON"),
),
);
}
}