颤振连接问题

时间:2021-03-13 23:44:29

标签: flutter variables dart

我在 flutter 上连接两个变量时遇到问题:我无法连接它们,当我尝试在后面添加一个字符串时,它不起作用。

class MusicAlbumListing extends StatefulWidget {
  final albumName;
  MusicAlbumListing({Key key, this.albumName}) : super(key: key);
  @override
  _MusicAlbumListing createState() => _MusicAlbumListing();
}

class _MusicAlbumListing extends State<MusicAlbumListing> {
  String _albumName = '';
  void initState() {
    _albumName = widget.albumName.toString();
    var strr = "Look this new album : $_albumName ! Awesome :)";
  }

它回来了

Look this new album : Mothership

然后什么都没有 有人可以帮我吗?

2 个答案:

答案 0 :(得分:0)

我认为您的字符串连接没有任何问题。

这是一个基于您不完整代码片段的最小工作示例:

enter image description here

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'StackOverflow Answer',
      home: MusicAlbumListing(albumName: 'Mothership'),
    );
  }
}

class MusicAlbumListing extends StatefulWidget {
  final String albumName;
  MusicAlbumListing({Key? key, required this.albumName}) : super(key: key);
  @override
  _MusicAlbumListing createState() => _MusicAlbumListing();
}

class _MusicAlbumListing extends State<MusicAlbumListing> {
  String _albumName = '';
  void initState() {
    super.initState();
    _albumName = "Look this new album : ${widget.albumName} ! Awesome :)";
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(child: Text(_albumName)),
    );
  }
}

提供您的最小工作示例以获得更有针对性的答案。

答案 1 :(得分:0)

感谢您的快速回复 首先,我在本地服务器(我的树莓派)上使用 ssh 脚本获取一个名为 output.txt 的文件

    import 'package:flutter/material.dart';
    import 'package:ssh/ssh.dart';
    import 'album_music.dart';
    
    class MainMenu extends StatefulWidget {
      @override
      _MainMenu createState() => _MainMenu();
    }
    
    class _MainMenu extends State<MainMenu> {
      String _result = '';
      List _array;
      final pi = new SSHClient(
        host: "192.168.0.35",
        port: 22,
        username: "pi",
        passwordOrKey: "mysecret",
      );
      Future<void> exec(String sshScript) async {
        String result;
        try {
          result = await pi.connect();
          if (result == "session_connected") {
            result = await pi.execute(sshScript);
            pi.disconnect();
          }
        } catch (e) {
          print('Error: ${e.code}\nError Message: ${e.message}');
        }
    
        setState(() {
          _result = result;
          _array = null;
        });
      }
    
      @override
      void initState() {
        super.initState();
        exec(
            "cd ../../; cd var/www/html/music; ls -d */ > output.txt; cat output.txt");
      }
    
      @override
      Widget build(BuildContext context) {
        final title = 'Albums disponibles';
        var strings = _result.split('\n');
        print(strings);
    
        return MaterialApp(
          title: title,
          home: Scaffold(
            appBar: AppBar(
              title: Text(title),
            ),
            body: ListView(
                children: new List.generate(
              strings.length - 1,
              (index) => new ListTile(
                title: Text(strings[index],
                    style: TextStyle(fontWeight: FontWeight.w500)),
                leading: Icon(Icons.folder_open),
                trailing: Icon(Icons.forward),
                onTap: () {
                  Navigator.push(
                      context,
                      MaterialPageRoute(
                          builder: (context) => MusicAlbumListing(
                              albumName: strings[index].replaceAll("/", ""))));
                },
              ),
            )),
          ),
        );
      }

我打开 txt 文件,并将 cat output.txt 转换为数组。 我认为你是对的,也许问题不在于串联。 对于第一个循环,Daft_Punk 进展顺利。 那是我的txt文件:

Daft_Punk
MotherShip
LeonardCohenBestSongs
Pink_Floyd_Essentials

我有:Look this new album : Daft_Punk ! Awesome :)

但是第二个循环和之后的循环将不起作用 可能引入了一个“坏”字符,防止连接