我正在尝试使用flutter来更改按钮上的文字。
我已将小部件拆分为不同的dart文件。我想从不同的dart文件中添加文本,但出现错误,因为“在将值传递给名为TextOutput的构造函数时,必须在命名参数之前出现位置参数。
此错误是什么意思?初学者,所以对此错误的解释将有很大帮助。
我正在尝试将值传递给构造函数,但遇到此错误。
class TextControlState extends State<TextControl> {
String _mainText="Hey Divya Here!";
void _changeText() {
setState(() {
this._mainText = "This changed!";
});
}
Widget build(BuildContext context) {
return Center(
child: Container(
margin: EdgeInsets.all(8),
child:
RaisedButton(
child:
Text('Change Text', style: TextStyle(color: Colors.white, fontSize: 18)),
onPressed: _changeText,
),
TextOutput(_mainText)
),
);
TextOutput dart文件
import 'package:flutter/material.dart';
class TextOutput extends StatelessWidget {
final String mainText;
TextOutput(this.mainText);
@override
Widget build(BuildContext context) {
return Text(mainText);
}
}
单击按钮时应更改文本的值。
答案 0 :(得分:0)
好吧,听起来您实际上是想这样做,而不是:
class _TextControlState extends State<TextControl> {
String _mainText = "Hey Divya Here!";
void _changeText() {
setState(() {
this._mainText = "This changed!";
});
}
@override
Widget build(BuildContext context) {
return Center(
child: Container(
margin: EdgeInsets.all(8),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
TextOutput(_mainText),
RaisedButton(
child: Text('Change Text', style: TextStyle(color: Colors.white, fontSize: 18)),
onPressed: _changeText,
),
],
),
),
);
}
}
这现在将凸起的按钮包装在一列中,该列允许您添加其他小部件,因此在本示例中,我已经在上方添加了文本,单击按钮时,文本值现在不会更改按钮文本。