我正在尝试将我的整个应用程序嵌入到 AppBar 和页脚中。所以我尝试为我的 MaterialApp 提供一个自定义构建器,它看起来像这样(为了清晰起见,我用按钮替换了页脚和应用栏)
import 'package:epicture/scenes/Landing.dart';
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'My App',
initialRoute: '/',
builder: (context, child) => Container(
child: FlatButton(
child: Text('Click me'),
onPressed: () => Navigator.of(context).pushNamed('/app'),
)),
// In my current code
builder: (context, child) => Embedder(child),
routes: <String, WidgetBuilder>{
'/': (context) => Landing(),
'/app': (context) => Text('My App !'),
},
);
}
}
Run Code Online (Sandbox Code Playgroud)
但是在按下“单击我”按钮时,会出现一个错误,指出上下文没有导航器
the context used to push or pop …
我从HTTP GET请求获得一个json,看起来像用"NewtonSoft.Json"解析后:
dynamic data = JsonConvert.DeserializeObject(responseString);
Run Code Online (Sandbox Code Playgroud)
responseString的位置是:
{"name1":{"id":123456789,"name":"nickname","profileIconId":1114,"summonerLevel":30}}
Run Code Online (Sandbox Code Playgroud)
如您所见,名称每次都会更改,我想知道如何data.name1.name在每次更改name1时更改这一点.
如果json看起来像我怎么办:
{"name1":{"id":123456789,"name":"nickname","profileIconId":1114,"summonerLevel":30},"name2":{"id":123456789,"name":"nickname","profileIconId":948,"summonerLevel":30}}
Run Code Online (Sandbox Code Playgroud) 我在 Express/React Web 应用程序中使用 Mongoose,并将数据存储在 Mongo 数据库中。
我将“歌曲”存储在歌曲集合中,用户有一个包含他听过的歌曲的 id 的数组。
然后为了呈现他一直在听的内容,我必须将数组与歌曲 id 与歌曲集合中的歌曲 id 链接起来。
我目前正在使用
song.find({_id: {$in: ids}}).exec(callback)
Run Code Online (Sandbox Code Playgroud)
获取与 'ids' 数组中的 id 匹配的所有歌曲。如果用户一次又一次地听这首歌,“ids”数组可能多次包含相同的 id。
问题是猫鼬只返回与 id 对应的歌曲一次,因此歌曲不会多次显示。有没有办法告诉猫鼬将重复的 id 传递给回调函数?
总结:
ids: ['a', 'a', 'a', 'b', 'c']
song.find({_id: {$in: ids}}).exec(callback)
dataPassedToCallback: [songA, songB, songC]
Run Code Online (Sandbox Code Playgroud)
期待
dataPassedToCallback: [songA, songA, songA, songB, songC]
Run Code Online (Sandbox Code Playgroud) 我正在使用 js-ipfs 服务器端在 IPFS 上“上传”文件,但它似乎比命令行ipfs daemon和ipfs add someFile.
在服务器端,我实例化一个Ipfs对象,然后尝试storeData使用文件内容的路径和缓冲区。当我的服务器启动时,我连接到三个集群:
Swarm listening on /ip4/127.0.0.1/tcp/4003/ws/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/127.0.0.1/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Swarm listening on /ip4/10.19.77.89/tcp/4002/ipfs/QmTBoDWXviw7eRKeDGbp3wU2PxAw1epPxax6mp8uY6CEEW
Run Code Online (Sandbox Code Playgroud)
我这样使用IPFS:
const IPFS = require('ipfs');
const node = new IPFS();
class Ipfs {
constructor() {
node.on('error', e => console.log(e))
node.on('start', () => console.log('Node started !'))
node.on('ready', () => console.log('Node is ready !'))
}
storeData(content, path) {
return new Promise((resolve, fail) => {
let encData = {
path: path,
content: content,
}; …Run Code Online (Sandbox Code Playgroud)