如何从不同的dart文件添加文本

时间:2019-07-27 11:22:31

标签: flutter

我正在尝试使用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);
  }
}

单击按钮时应更改文本的值。

1 个答案:

答案 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,
            ),
          ],
        ),
      ),
    );
  }
}

这现在将凸起的按钮包装在一列中,该列允许您添加其他小部件,因此在本示例中,我已经在上方添加了文本,单击按钮时,文本值现在不会更改按钮文本。