小编har*_*B10的帖子

未处理的异常:InternalLinkedHashMap<String, dynamic>' 不是类型 'List<dynamic> 的子类型

我正在尝试从服务器获取 JSON 响应并将其输出到控制台。

Future<String> login() async {
    var response = await http.get(
        Uri.encodeFull("https://etrans.herokuapp.com/test/2"),
        headers: {"Accept": "application/json"});

    this.setState(() {
      data = json.decode(response.body);
    });


    print(data[0].name);
    return "Success!";
  }
Run Code Online (Sandbox Code Playgroud)

未处理的异常:类型“_InternalLinkedHashMap<String, dynamic>”不是“List”类型的子类型

可能是什么原因?

dart flutter

72
推荐指数
7
解决办法
13万
查看次数

查找提供程序上下文的颤振问题

我对 Flutter Provider 模式有疑问。用户重定向到新屏幕后,找不到提供程序。

按照我之前的问题(在此小部件上方找不到正确的提供者),我编写了以下代码:

class NewRoute extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final title = 'Tap to select';
    return MaterialApp(
        title: title,
        home: Scaffold(
          appBar: AppBar(
            title: Text(title),
          ),
          body: NewRouteBody()
        ));
  }
}

class NewRouteBody extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    var user = Provider.of<UserRepository>(context);
    return ListView(...)
Run Code Online (Sandbox Code Playgroud)

我做了同样的事情,但我再次收到错误消息,指出它无法在此小部件 ( NewRouteBody)上方找到正确的提供程序。

试图以某种方式修复它,在谷歌上搜索了几个小时的答案但没有成功......

任何帮助表示赞赏。

编辑

这是UserRepository其中包含模式:

class UserRepository with ChangeNotifier {
  User user;
  Status _status = Status.Uninitialized;

  Status get status => …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-provider

10
推荐指数
1
解决办法
2万
查看次数

laravel中的cURL请求

我正努力在Laravel中提出这个cURL请求

curl -d '{"key1":"value1", "key2":"value2"}' -H "Content-Type: application/json"   -X GET http://my.domain.com/test.php
Run Code Online (Sandbox Code Playgroud)

我一直在尝试这个:

$endpoint = "http://my.domain.com/test.php";

$client = new \GuzzleHttp\Client();

$response = $client->post($endpoint, [
                GuzzleHttp\RequestOptions::JSON => ['key1' => $id, 'key2' => 'Test'],
            ]);

$statusCode = $response->getStatusCode();
Run Code Online (Sandbox Code Playgroud)

但是我收到了一个错误 Class 'App\Http\Controllers\GuzzleHttp\RequestOptions' not found

有什么建议?

编辑

我需要从API中获取响应$response然后将其存储在DB中...我该怎么做?:/

php curl laravel guzzle

9
推荐指数
4
解决办法
4万
查看次数

无法在此小部件上方找到正确的提供者

我在使用 Flutter Provider 时遇到了问题......我的流程是这样的:登录用户 ID 被传递给新的小部件后 -> 从那里执行保存到数据库,然后重定向到新的小部件(仪表板)。

这是登录后小部件的代码:

return MaterialApp(
      title: title,
      home: Scaffold(
          appBar: AppBar(
            title: Text(title),
          ),
          body: ListView(
            children: <Widget>[
              Container(
                margin: EdgeInsets.all(8.0),
                child: Card(
                  shape: RoundedRectangleBorder(
                      borderRadius: BorderRadius.all(Radius.circular(8.0))),
                  child: InkWell(
                    onTap: () {
                      var user = Provider.of<UserRepository>(context);
                      user.savePreference(user.user.id, "Something");
                      user.navigateToNewPage(Dashboard(), context);
                      print(user.user.id);
                    },
Run Code Online (Sandbox Code Playgroud)

这有效:

user.savePreference(user.user.id, "Something");
Run Code Online (Sandbox Code Playgroud)

但这导致了一个问题:

user.navigateToNewPage(Dashboard(), context);
Run Code Online (Sandbox Code Playgroud)

在仪表板小部件中,我正在创建:

 Widget build(BuildContext context) {
    var user = Provider.of<UserRepository>(context);
Run Code Online (Sandbox Code Playgroud)

在 UserRepository 我有这个:

class UserRepository with ChangeNotifier {
  User user;
  Status _status = Status.Uninitialized;

  Status get status …
Run Code Online (Sandbox Code Playgroud)

dart flutter flutter-provider

6
推荐指数
4
解决办法
3万
查看次数

Laravel - 调用未定义的方法 Illuminate\Foundation\Application::share()

我正在从 Laravel 5.3 升级到 Laravel 5.4。问题是,当我运行时composer update,当涉及到php artisan optimize部分时,我收到错误:

[Symfony\Component\Debug\Exception\FatalErrorException]
  Call to undefined method Illuminate\Foundation\Application::share()
Run Code Online (Sandbox Code Playgroud)

我在 StackOverflow 上读到了几个问题,答案是用单例替换这个共享方法。但我在哪里可以找到这个share()

编辑

我的composer.json 文件:

    "name": "laravel/laravel",
    "description": "The Laravel Framework.",
    "keywords": ["framework", "laravel"],
    "license": "MIT",
    "type": "project",
    "require": {
        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "sngrl/sphinxsearch": "dev-master",
        "laravelcollective/html": "5.4.*",
        "aws/aws-sdk-php-laravel": "~3.0",
        "league/flysystem-aws-s3-v3": "^1.0",
        "mcamara/laravel-localization": "1.2.*",
        "league/csv": "^8.2",
        "mikehaertl/phpwkhtmltopdf": "^2.2",
        "barryvdh/laravel-snappy": "^0.3.3",
        "wemersonjanuario/wkhtmltopdf-windows": "dev-master",
        "nesbot/carbon": "^1.22",
        "uxweb/sweet-alert": "^1.4",
        "laracasts/flash": "^2.0",
        "guzzlehttp/guzzle": "^6.2",
        "illuminate/support": "5.4.*",
        "laravel/scout": "^3.0"
    },
    "require-dev": {
        "fzaninotto/faker": …
Run Code Online (Sandbox Code Playgroud)

php laravel

5
推荐指数
1
解决办法
2万
查看次数

使用php:// input模拟发送数据和接收

我有两条路线.

Route::get('/receiveSignal', 'SignalController@receiveSignal');
Route::get('/sendSignal', 'SignalController@sendSignal');
Run Code Online (Sandbox Code Playgroud)

我想模拟从sendSignal接收信号路径发送数据.

所以,在发送信号功能时我有这个:

public function sendSignal()
    {
        $data = ['spotid' => '421156', 'name' => 'Test', 'desc' => 'some desc', 'StartofDetection' => '2018-01-17 22:22:22'];

        $dataJson = json_encode($data);

        return $dataJson;

    }
Run Code Online (Sandbox Code Playgroud)

如何更改它以便receiveSignal像这样接收:

public function receiveSignal()
    {
        $test = file_get_contents('php://input');

        dd($test);
    }
Run Code Online (Sandbox Code Playgroud)

在我receiveSignal输入http:// localhost:8000/sendSignal后,我应该收到json .这有可能吗?

php laravel

5
推荐指数
1
解决办法
174
查看次数

Flutter 优化 TextField 自动完成实现中的 API 调用次数

我正在尝试实现自动完成以在我的应用程序中选择位置。为此,我使用 Here Maps API。目前我有这个TextField

onChanged: (query){
    print("Current value is: ${query}");
    if(query) { getPlacesFromHereMaps(query); } 
}, 
Run Code Online (Sandbox Code Playgroud)

在这里,每次用户输入一些字母时,都会调用自动完成 API。

因此,如果用户输入“New York”,则意味着应用程序将调用 API 大约 8 次,我发现这太多了。有没有办法优化这个?

dart flutter

5
推荐指数
1
解决办法
4819
查看次数

Flutter FutureBuilder 显示进度指示器

我有一个按钮,按下后会在数据库中插入一些内容并将用户重定向到另一个页面。我正在尝试实现 FutureBuilder,它应该显示CircularProgressIndicator直到一切完成。

这是我的功能:

Future<bool> insertPhoneNumber(String phoneNumber) async {
    String token = await getToken();

    if (token.isNotEmpty) {
      var body = jsonEncode({'token': token, 'userID': user.getUserID(), 'phoneNumber': phoneNumber});

      print(body.toString());

      var res = await http.post((baseUrl + "/insertPhoneNumber/" + user.getUserID()),
          body: body,
          headers: {
            "Accept": "application/json",
            "content-type": "application/json"
          });

      if (res.statusCode == 200) {
        print("Insert Phone Number is OK");
        notifyListeners();
        return true;
      } else {
        print("Insert Phone Number not OK");
        notifyListeners();
        return false;
      }
    } else {
      print("Insert Phone Number failed due to …
Run Code Online (Sandbox Code Playgroud)

asynchronous dart flutter

5
推荐指数
1
解决办法
8392
查看次数

Flutter Agora.io 调用屏幕

我想像 Messenger (Facebook) 那样添加应用内(视频)呼叫。当一方创建频道而另一方加入时,它起作用。

但是有没有办法创建通话屏幕,让 B 方可以接听或拒绝来电?我正在查看 Agora.io 文档,但找不到任何适合于此的内容。

虽然这是我的代码...

 Future<void> initialize() async {
    if (APP_ID.isEmpty) {
      setState(() {
        _infoStrings.add(
          'APP_ID missing, please provide your APP_ID in settings.dart',
        );
        _infoStrings.add('Agora Engine is not starting');
      });
      return;
    }

    await _initAgoraRtcEngine();
    _addAgoraEventHandlers();
    await AgoraRtcEngine.enableWebSdkInteroperability(true);
    await AgoraRtcEngine.setParameters('''
{\"che.video.lowBitRateStreamParameter\":{\"width\":320,\"height\":180,\"frameRate\":15,\"bitRate\":140}}''');
    await AgoraRtcEngine.joinChannel(null, 'Test', null, 0);
  }

  Future<void> _initAgoraRtcEngine() async {
    AgoraRtcEngine.create(APP_ID);
    AgoraRtcEngine.enableVideo();
  }

  void _addAgoraEventHandlers() {
    AgoraRtcEngine.onError = (dynamic code) {
      setState(() {
        final info = 'onError: $code';
        _infoStrings.add(info);
      });
    };

    AgoraRtcEngine.onJoinChannelSuccess = (
      String …
Run Code Online (Sandbox Code Playgroud)

flutter agora.io

5
推荐指数
1
解决办法
4461
查看次数

AWS Athena 导入 CSV 文件

我将此数据作为 .csv 存储在 S3 中(但它可以是最适合我的要求的任何其他文件格式):

"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
"41.9100687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417","41.9810128,-87.8785121","41.9200687,-87.8805614","41.9802511,-87.8803253","41.9806802,-87.8792417",
Run Code Online (Sandbox Code Playgroud)

我想每列有一个坐标:

像这样:

坐标:

1.  41.9100687,-87.8805614

2.  41.9802511,-87.8803253

3.  41.9806802,-87.8792417
Run Code Online (Sandbox Code Playgroud)

导入 S3 后,我选择 CSV 作为数据类型...然后添加字符串列。

在此处输入图片说明

但相反,我得到了一些奇怪的表格输出。除此之外,我尝试将其作为带有逗号分隔符的纯 txt 文件导入。我得到了同样奇怪的输出。

在此处输入图片说明

我在这里做错了什么?

编辑

test列屏幕截图来自另一个但相同的示例。应该有gps_coordinates

amazon-web-services amazon-athena

4
推荐指数
1
解决办法
9262
查看次数