Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/dart/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Flutter 类型';int';不是类型为';字符串';但一切都是整数_Flutter_Dart - Fatal编程技术网

Flutter 类型';int';不是类型为';字符串';但一切都是整数

Flutter 类型';int';不是类型为';字符串';但一切都是整数,flutter,dart,Flutter,Dart,我知道这看起来是重复的,但事实并非如此,其他话题的答案与我现在面临的完全不同 我真的不知道发生了什么,一切都是整数,但仍然是字符串 问题发生在FOR循环上(如果我打印somaModulos,它会正确地显示数学,只有在FOR循环内部打印,如果我在FOR外部打印,它会导致下面的错误) 以后不要执行任何操作,因为问题“type'int'不是type'String'的子类型” 2º 可以看出,文本字段onChange上的数组类型值发生了变化 即使文本输入类型是一个数字,如果我把它放在onChange方法

我知道这看起来是重复的,但事实并非如此,其他话题的答案与我现在面临的完全不同

我真的不知道发生了什么,一切都是整数,但仍然是字符串

问题发生在FOR循环上(如果我打印somaModulos,它会正确地显示数学,只有在FOR循环内部打印,如果我在FOR外部打印,它会导致下面的错误)

以后不要执行任何操作,因为问题“type'int'不是type'String'的子类型”


可以看出,文本字段onChange上的数组类型值发生了变化

即使文本输入类型是一个数字,如果我把它放在onChange方法上,它也会变成string,我没有为此付出任何努力(我是dart新手)

列表中的项目总是用int值创建,但在过程中间更改为字符串…

              TextField(
                keyboardType: TextInputType.number,
                decoration: InputDecoration(labelText: "Quantidade de módulos"),
                style: TextStyle(fontSize: 18),
                controller: _controllerQnt,
                onChanged: (String value) {
                  setState(() {
                    modulosConfig[itemUtilized][0] = value;
                  });
                },
为了使其正常工作,我将数组从:

modulosConfig.insert(indexStart, [0, 0, 'colonial', 'retrato']);
致:

或者更改文本字段onChange方法整数


我选择将incremention更改为all字符串,然后在FOR循环中解析它。

ModulesNecessarios真的是int吗?
ModulesNecessarios
ModulesConfig
的数据类型是什么?当显式地为其分配字符串时,为什么要将TextModules声明为var,当您显式地为i指定一个int并递增时,为什么要将i声明为var呢?我知道关于var的使用有很多争论,但是类型歧义可能是有问题的。这让我想知道,我们在代码中看不到modulesNecessarios是在哪里声明的,如果它不是一个字符串的话。。。另外,是的,modulesNecessarios和modulesConfig都是整数。。。我会更新一个例子,你说“一切都是一个整数”,但有些东西(例如
int.parse
)期望
String
s,而不是
int
s。
60
              TextField(
                keyboardType: TextInputType.number,
                decoration: InputDecoration(labelText: "Quantidade de módulos"),
                style: TextStyle(fontSize: 18),
                controller: _controllerQnt,
                onChanged: (String value) {
                  setState(() {
                    modulosConfig[itemUtilized][0] = value;
                  });
                },
modulosConfig.insert(indexStart, [0, 0, 'colonial', 'retrato']);
modulosConfig.insert(indexStart, ['0', '0', 'colonial', 'retrato']);