gpt4 book ai didi

angular - 使用 HttpClient 时出现 Angular 错误的 Nativescript

转载 作者:行者123 更新时间:2023-12-02 09:01:47 34 4
gpt4 key购买 nike

我正在尝试在我的 Nativescript 应用程序中使用 Angular 的 HttpClient但是当我将它导入到我的组件中时,我收到 Error: Trying to link invalid 'this' to a Java object

Update

I also tried adding this in the Groceries example without changing anything else and it doesn't work

{
"description": "ArkCash",
"license": "SEE LICENSE IN <your-license-filename>",
"readme": "NativeScript Application",
"repository": "<fill-your-repository-here>",
"nativescript": {
"id": "arkcash.chbtechnologies.ch.arkcash_mobile",
"tns-android": {
"version": "3.2.0"
}
},
"dependencies": {
"@angular/animations": "~4.4.6",
"@angular/common": "~4.4.6",
"@angular/compiler": "~4.4.6",
"@angular/core": "~4.4.6",
"@angular/forms": "~4.4.6",
"@angular/http": "~4.4.6",
"@angular/platform-browser": "~4.4.6",
"@angular/platform-browser-dynamic": "~4.4.6",
"@angular/router": "~4.4.6",
"@ngrx/core": "^1.2.0",
"@ngrx/effects": "^2.0.5",
"@ngrx/router-store": "^4.1.0",
"@ngrx/store": "^2.2.3",
"angular2-jwt": "^0.2.3",
"lodash": "^4.17.4",
"moment": "^2.19.1",
"nativescript-angular": "~4.4.1",
"nativescript-drop-down": "^3.2.0",
"nativescript-fabric": "^1.0.6",
"nativescript-pro-ui": "^3.1.4",
"nativescript-pulltorefresh": "^2.0.2",
"nativescript-theme-core": "~1.0.4",
"nativescript-toast": "^1.4.6",
"ngrx-store-logger": "^0.2.0",
"reflect-metadata": "~0.1.8",
"reselect": "^3.0.1",
"rxjs": "~5.5.2",
"tns-core-modules": "^3.2.0",
"zone.js": "~0.8.2"
},
"devDependencies": {
"babel-traverse": "6.26.0",
"babel-types": "6.26.0",
"babylon": "6.18.0",
"lazy": "1.0.11",
"nativescript-dev-android-snapshot": "^0.*.*",
"nativescript-dev-typescript": "~0.5.0",
"typescript": "~2.5.3"
}
}

我还在我的 app.module.ts 中导入了 NativeScriptHttpClientModule。

import { NgModule, LOCALE_ID } from "@angular/core";
import { NativeScriptFormsModule } from "nativescript-angular/forms";
import { NativeScriptHttpModule } from "nativescript-angular/http";
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
import { NativeScriptRouterModule } from "nativescript-angular/router";
import { NavigationComponent } from "./components/navigation/navigation.component";
import { NativeScriptUIListViewModule } from "nativescript-pro-ui/listview/angular";
import { StoreModule, Store } from "@ngrx/store";
import { EffectsModule } from "@ngrx/effects";
import { DropDownModule } from "nativescript-drop-down/angular";
import { DateSelectModalComponent } from "./components/modal-date-select/modal-date-select.component";

import { AppComponent } from "./app.component";
import { routes, navigatableComponents } from "./app.routing";
import { FabricModule } from "nativescript-fabric/angular";

import reducer from "./reducers/index";
import { EntryActions, AddressActions, CategoryActions } from "./actions/index";
import { EntryEffects, AddressEffects, CategoryEffects } from "./effects";

import { EntryService } from './shared/entry/entry.service';
import { AddressService } from "./shared/address/address.service";
import { CategoryService } from "./shared/category/category.service";
import { UserService } from "./shared/user/user.service";
import { DrawerService } from "./shared/drawer/drawer.service";

import { n2s } from "./utils/number2string-pipe";
import { HTTP_INTERCEPTORS } from "@angular/common/http";
import { NativeScriptHttpClientModule } from "nativescript-angular/http-client";
import { ArkcashInterceptor } from "./utils/interceptor";

export const EFFECTS = [
EffectsModule.run(EntryEffects),
EffectsModule.run(AddressEffects),
EffectsModule.run(CategoryEffects)
];

@NgModule({
imports: [
NativeScriptModule,
NativeScriptFormsModule,
NativeScriptHttpModule,
NativeScriptRouterModule,
NativeScriptUIListViewModule,
DropDownModule,
NativeScriptHttpClientModule,
FabricModule.forRoot(),
NativeScriptRouterModule.forRoot(routes),
StoreModule.provideStore(reducer),
EFFECTS
// EffectsModule.run(AddressEffects)
],
declarations: [
AppComponent,
NavigationComponent,
DateSelectModalComponent,
n2s,
...navigatableComponents
],
providers: [
EntryActions,
EntryService,
UserService,
AddressActions,
AddressService,
CategoryActions,
CategoryService,
DrawerService,
// HttpClient,
{provide: LOCALE_ID, useValue:"de-CH"}
],
bootstrap: [AppComponent],
entryComponents: [DateSelectModalComponent]
})
export class AppModule {}

还有我的 AppComponent

import { Component, OnInit } from "@angular/core";
import { RouterExtensions } from 'nativescript-angular/router';
import { Store } from "@ngrx/store";
import { AppState } from "./reducers/index";
import { EntryActions } from "./actions/index";
import { HttpClient } from "@angular/common/http";

@Component({
selector: "main",
template: "<page-router-outlet></page-router-outlet>"
})
export class AppComponent implements OnInit {
constructor(
private store: Store<AppState>,
private entryActions: EntryActions,
private http: HttpClient
) {}

ngOnInit() {
// this.store.dispatch(this.entryActions.loadEntries(0, 10));
}
}

最佳答案

我遇到了同样的问题,看来我找到了解决方案。Nativescript 与 Angular 的 http 模块的基本问题似乎是它在第一次导入时覆盖了 global.__extends 函数。

首先导入 NativeScriptHttpClientModule(在 app.module.ts 中)应该可以解决此问题。

因为它对您检查您的 NativeScript-Angular 模块是否是最新的或者您可以手动复制其解决方案没有帮助:

const cachedExtends = global.__extends;
import { HttpClient } from '@angular/common/http';
global.__extends = cachedExtends;

关于angular - 使用 HttpClient 时出现 Angular 错误的 Nativescript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47225744/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com