NativeScript Импорт модуля NGXS в app.module вызывает ошибку в консоли журнала - PullRequest
0 голосов
/ 04 апреля 2019

Я новичок в NativeScript и хочу использовать управление состоянием NGXS и реализовать его в своем приложении.Я установил NGXS с NPM: @ngxs/store @ngxs/logger-plugin и @ngxs/devtools-plugin.

Поэтому я добавил модуль NGXS в мой app.module.

import { NgModule, NO_ERRORS_SCHEMA } from "@angular/core";
import { NativeScriptModule } from "nativescript-angular/nativescript.module";
import { NativeScriptUISideDrawerModule } from "nativescript-ui-sidedrawer/angular";

import { NgxsModule } from '@ngxs/store';
import { NgxsLoggerPluginModule } from '@ngxs/logger-plugin';
import { NgxsReduxDevtoolsPluginModule } from '@ngxs/devtools-plugin';

import { AppRoutingModule } from "./app-routing.module";
import { AppComponent } from "./app.component";
import { PetState } from './_ngxs/pet/pet.state';

@NgModule({
  bootstrap: [
    AppComponent
  ],
  imports: [
    AppRoutingModule,
    NativeScriptModule,
    NativeScriptUISideDrawerModule,
    NgxsModule.forRoot([
        //if i uncomment PetState, in console log show me error, Failed to find module: "./pet.actions"
        // PetState
    ]),
    //if i uncomment `NgxsLoggerPluginModule.forRoot()`, in console log show me error, Failed to find module: "@ngxs/logger-plugin
    // NgxsLoggerPluginModule.forRoot(),
    //if i uncomment `NgxsReduxDevtoolsPluginModule.forRoot()`, in console log show me error, Failed to find module: "@ngxs/devstool-plugin
    // NgxsReduxDevtoolsPluginModule.forRoot() 
  ],
  declarations: [
    AppComponent
  ],
  schemas: [
    NO_ERRORS_SCHEMA
  ]
})
export class AppModule { }

После того, как я добавил модуль ngxs, у меня появилось 2 проблемы:

  1. в NgxsModule.forRoot, если я раскомментировал PetState, в журнале консоли произошла ошибка, Не удалось найти модуль: "./pet.actions».Пожалуйста, обратитесь

  2. Если я раскомментирую NgxsLoggerPluginModule.forRoot() / NgxsReduxDevtoolsPluginModule.forRoot(), я получу сообщение об ошибке в журнале консоли и произнесу failed to find module @ngxs/logger-plugin / @ngxs/devstool-plugin

ниже - pet.state.ts коды

import { State, Action, Selector, StateContext } from '@ngxs/store';
import { Pet } from './pet.model';
import { AddPet, RemovePet } from './pet.actions';

export class PetStateModel {
  pets: Pet[];
}

@State<PetStateModel>({
  name: 'Pet',
  defaults: {
    pets: []
  }
})

export class PetState {

  @Selector()
  static getPet(state: PetStateModel) {
    return state.pets;
  }

  @Action(AddPet)
  addPet({getState, patchState}: StateContext<PetStateModel>, { payload }: AddPet) {
    const state = getState();
    patchState({
        pets: [...state.pets, payload]
    })
  }

  @Action(RemovePet)
  removePet({getState, patchState}: StateContext<PetStateModel>, { payload }: RemovePet) {
    const state = getState();
    patchState({
        pets: state.pets.filter(a => a.name !== payload )
    })
  }
}

Мне действительно нужно, чтобы кто-то мог помочь, чтобы помочь мне решить проблемы, спасибо,

Обновлено вот мойpackage.json

{
  "nativescript": {
    "id": "org.nativescript.pledgeCareSample",
    "tns-android": {
      "version": "5.2.1"
    },
    "tns-ios": {
      "version": "5.2.0"
    }
  },
  "description": "NativeScript Application",
  "license": "SEE LICENSE IN <your-license-filename>",
  "repository": "<fill-your-repository-here>",
  "scripts": {
    "lint": "tslint \"src/**/*.ts\""
  },
  "dependencies": {
    "@angular/animations": "~7.2.0",
    "@angular/common": "~7.2.0",
    "@angular/compiler": "~7.2.0",
    "@angular/core": "~7.2.0",
    "@angular/forms": "~7.2.0",
    "@angular/http": "~7.2.0",
    "@angular/platform-browser": "~7.2.0",
    "@angular/platform-browser-dynamic": "~7.2.0",
    "@angular/router": "~7.2.0",
    "@ngxs/storage-plugin": "^3.4.3",
    "@ngxs/store": "^3.4.3",
    "nativescript-angular": "~7.2.1",
    "nativescript-theme-core": "~1.0.4",
    "nativescript-ui-sidedrawer": "~5.1.0",
    "nativescript-unit-test-runner": "^0.6.0",
    "reflect-metadata": "~0.1.12",
    "rxjs": "~6.3.0",
    "tns-core-modules": "~5.2.0",
    "zone.js": "~0.8.26"
  },
  "devDependencies": {
    "@angular/compiler-cli": "~7.2.0",
    "@nativescript/schematics": "~0.5.0",
    "@ngtools/webpack": "~7.2.0",
    "@ngxs/devtools-plugin": "^3.4.3",
    "@ngxs/logger-plugin": "^3.4.3",
    "@types/jasmine": "^3.3.12",
    "codelyzer": "~4.5.0",
    "karma": "4.0.1",
    "karma-jasmine": "2.0.1",
    "karma-nativescript-launcher": "0.4.0",
    "nativescript-dev-sass": "~1.6.0",
    "nativescript-dev-typescript": "~0.8.0",
    "nativescript-dev-webpack": "~0.20.0",
    "tslint": "~5.11.0"
  },
  "gitHead": "f548ec926e75201ab1b7c4a3a7ceefe7a4db15af",
  "readme": "NativeScript Application"
}

1 Ответ

0 голосов
/ 04 апреля 2019

Хорошо, я нашел решение. Через несколько часов я нашел это решение здесь и со своими решениями

Просто нужно удалить папки node_modules, hook и platform, затем npm i и добавить platform для ios и android.

и еще 1 вещь, которую я не уверен, почему, я удалил для @ngxs/logger-plugin и @ngxs/devtools-plugin и переустановил обратно в зависимость, а не в зависимость dev.

В любом случае, пока это работает для меня.

...