flutter - 更新文本小部件 onTap
问题描述
我有一个文本小部件,我想在其中将文本更改为问题和答案变量 ontap,但它没有任何帮助。问题和答案字符串是从上一页传递的。在此页面上,它首先显示问题,当用户点击该文本小部件时,问题必须更改为回答文本。但是不更新不知道为什么。我是初学者请帮忙
import 'package:flutter/material.dart';
class ShowCard extends StatefulWidget {
final String question;
final String answer;
ShowCard({@required this.question, @required this.answer}); //accepting question and answer
@override
_ShowCardState createState() => _ShowCardState();
}
class _ShowCardState extends State<ShowCard> {
@override
Widget build(BuildContext context) {
String cardDetails = widget.question; //initializing question text
return Scaffold(
body: Center(
child: Container(
child: GestureDetector(
child: Text(cardDetails),
onTap: () {
setState(() {
if (cardDetails == widget.question) {
cardDetails = widget.answer;
} else {
cardDetails = widget.question;
}
});
},
))),
);
}
}
解决方案
点击后,cardDetails 再次被分配相同的值build
,
String cardDetails = widget.question;
改为这样做
class _ShowCardState extends State<ShowCard> {
String cardDetails;
@override
void initState() {
cardDetails = widget.question;
super.initState();
}
@override
Widget build(BuildContext context) {
...
推荐阅读
- typescript - 是否可以为脚本加载库提供打字稿声明文件?
- python-3.x - 无法导入手电筒音频“没有可用的音频后端。”
- maven - 是否可以使用 Maven POM 文件为 Maven 发布插件配置 GIT Tag?
- r - 试图理解另一个人的 R 代码的新手
- reactjs - 使用钩子更新返回的 json
- ios - Swift 按错误排序:无法转换“CGFloat”类型的值?到预期的参数类型'Self'
- python - Python Pygame 项目自动化停止工作
- apache-spark - UseMethod(“invoke”)中的错误:没有适用于“invoke”的方法应用于“character”类的对象
- parameters - LMFIT 中的约束参数
- c# - 用来自同一数据库的不同表填充两个不同的 datagridview