在服务中导入 dart:html 出现异常 未找到动态提供程序

Import dart:html in Service got exception No provider found for dynamic

我有一个工作 UserService 类似于 AngularDart 教程中的 HeroService BrowserClient。 现在我需要使用 localStorage 来保存 API 响应。

导入 dart:html 后,我刷新浏览器,控制台突然出现错误:

EXCEPTION: No provider found for dynamic: UserService -> dynamic.

当我删除导入时,服务运行很好。

这是我的用户服务代码。

import 'dart:convert';
import 'dart:html';

import 'package:http/http.dart';

import 'package:my_app/src/instance_logger.dart';

class UserService with InstanceLogger {
  static final _headers = {'Content-Type': 'application/json'};
  static const _authUrl = 'https://my.domain/api-token-auth/';
  String get loggerPrefix => 'UserService'; // or set ''

  final Client _http;

  UserService(this._http);

  dynamic _extractData(Response resp) => json.decode(resp.body)['data'];

  Exception _handleError(dynamic e) {
    log(e); // for demo purposes only
    return Exception('Server error; cause: $e');
  }
}

在组件元数据中:

  providers: [ClassProvider(UserService)],

如何在服务中使用dart:html?如果我想访问 localStorage.

谢谢。

dart:html 和 package:http/http.dart 不幸的是有一个名为 Client.

的 class

如何解决此冲突是 隐藏 不需要的 class 不随其包一起导入。

改变

import 'dart:html';

import 'dart:html' hide Client;

这将解决碰撞问题。您也可以给导入一个别名,例如:

import 'dart:html' as html;

然后你可以使用 localStorage 通过使用前缀 html.localStorage;

当我 运行 遇到这个问题时,我只是从 dart:html 导入中隐藏了 Client class。