Search code examples
flutterdartmobilecoding-stylecross-platform

I couldn't get data from class


I've a class for store scripts in data folder like this

import 'package:keydata_zipcikti/models/script_model.dart';

const scripts = [
  Script('create network folder bash script')
  |
  |
  |
];

and model file in model folder

class Script {
  const Script(this.text);
  final String text;
}

and screen like this

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:keydata_zipcikti/data/scripts.dart';

final String _script = scripts[0].toString();
String _resultScript = "";

class Zipcikti extends StatefulWidget {
  const Zipcikti({super.key});

  @override
  State<Zipcikti> createState() => _ZipciktiState();
}

class _ZipciktiState extends State<Zipcikti> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Image.asset(
              "assets/img/100logo.png",
              width: 275,
            ),
            TextField(
              decoration: const InputDecoration(labelText: "Kullanıcı Adı"),
              onChanged: (userName) {
                _resultScript = _script.replaceAll("tsuser", userName);
              },
            ),
            TextField(
              decoration: const InputDecoration(labelText: "Sunucu Adı"),
              onChanged: (serverName) {
                _resultScript =
                    _resultScript.replaceAll("tibbi-sekreterlik", serverName);
              },
            ),
            ElevatedButton(onPressed: () {}, child: const Text('Bir TIK')),
            Text(_resultScript),
            ElevatedButton(
                onPressed: () {
                  Clipboard.setData(ClipboardData(text: _script));
                  ScaffoldMessenger.of(context).showSnackBar(
                      const SnackBar(content: Text("Kopyalandı!")));
                },
                child: const Text('Kopyala')),
          ],
        ),
      ),
    );
  }
}

but when i copy _script it returns"Instance of Script"

but i want it returns "create network folder"

Where is the problem?

..............................................................................................


Solution

  • Your code is wrong in this line:

    final String _script = scripts[0].toString();
    

    Change it to this and you will get your string data:

    final String _script = scripts[0].text;