我有一个像这样的 JSON:
{
"luid": 1,
"uid": 1,
"description": "Inside there are some buildings:\n- houses,\n- skyscrapers,\n- bridges",
"visible": 1
}
Run Code Online (Sandbox Code Playgroud)
当我在 dart 中获取 json 时,我将所有字段放在单独的 getter 中。
在 UI 中,打印 a 中的描述字段Text,我看到:
Inside there are some buildings:\n- houses,\n- skyscrapers,\n- bridges
Run Code Online (Sandbox Code Playgroud)
代替:
Inside there are some buildings:
- houses,
- skyscrapers,
- bridges
Run Code Online (Sandbox Code Playgroud)
代码是这样的:
_respserver =
await cl.get('datacontents.json');
_analyzed = json.decode(utf8.decode(_respserver.bodyBytes));
Text(_analyzed['description'])
Run Code Online (Sandbox Code Playgroud)
怎样才能修好呢?
我有这个代码:
List<Widget> _elementsHere = _locationsRegister
.map((e) => ShowingLocation(
num: e.num,
name: e.name,
icon: e.icon,
))
.toList();
Run Code Online (Sandbox Code Playgroud)
我已经指定了List<Widget>,但是如果我_elementsHere.runtimeType.toString()在控制台中打印,我可以看到List<ShowingLocation>. 事实上,如果我添加此代码:
_elementsHere.insert(0, Text('hello'));
Run Code Online (Sandbox Code Playgroud)
尽管它是一个小部件,但我收到的错误Text不是 的子类型ShowingLocation。
我想要_elementsHereasList<Widget>而不是List<ShowingLocation>.
我有这个代码:
Column(
children: [
MyFirstWidget(),
MySecondWidget(),
],
);
Run Code Online (Sandbox Code Playgroud)
现在,如果有条件,我想向该列添加一些小部件。这里有一个例子:
Column(
children: [
MyFirstWidget(),
MySecondWidget(),
if(condition == true) {
MyThirdWidget(),
MyFourthWidget(),
}
],
);
Run Code Online (Sandbox Code Playgroud)
我知道这段代码是错误的,但是我怎样才能做到正确的 dart 编程呢?