Ionic 3 хранилище не может читать внутри forEach - PullRequest
0 голосов
/ 05 ноября 2018

Я не могу использовать хранилище внутри forEach.

Но за пределами forEach хранилище работает отлично.

Мой код ниже:

tmp.ts

import { Component } from '@angular/core';
import { IonicPage, NavController, NavParams } from 'ionic-angular';
import { Storage } from '@ionic/storage';
import { Http } from '@angular/http';

@IonicPage()
@Component({
  selector: 'page-tmp',
  templateUrl: 'tmp.html',
})
export class TmpPage {

  url: string = "http://www.myurl.com:8282/ionic/php/";

  constructor(
    public navCtrl: NavController, 
    public navParams: NavParams, 
    public storage: Storage,
    public http: Http
  ){
    this.http.get(this.url).map(res => res.json())
    .subscribe(res => {
      res.forEach(function(valor) {
        console.log('login_sucesso:'+valor.login_sucesso);
        this.storage.set('login_sucesso', valor.login_sucesso);
      });
    });
  }
}

Моя консоль:

login_sucesso:OK
ERROR TypeError: Cannot read property 'storage' of undefined
    at tmp.ts:32
    at Array.forEach (<anonymous>)
    at SafeSubscriber._next (tmp.ts:30)
    at SafeSubscriber.__tryOrUnsub (Subscriber.js:242)
    at SafeSubscriber.next (Subscriber.js:189)
    at Subscriber._next (Subscriber.js:129)
    at Subscriber.next (Subscriber.js:93)
    at MapSubscriber._next (map.js:85)
    at MapSubscriber.Subscriber.next (Subscriber.js:93)
    at XMLHttpRequest.onLoad (http.js:1591)

Отпечаток моей консоли console.log

Что мне нужно сделать, так это получить информацию PHP и передать ее в хранилище.

Может кто-нибудь мне помочь?

* решено * https://stackoverflow.com/a/53161108/10609587

res.forEach((valor) => {
    console.log('login_sucesso:'+valor.login_sucesso);
    this.storage.set('login_sucesso', valor.login_sucesso);
  });

1 Ответ

0 голосов
/ 05 ноября 2018

Можете ли вы попробовать выполнить приведенную ниже настройку, чтобы использовать функцию "жирной стрелки"? Похоже, вы теряете свой this контекст.

  res.forEach((valor) => {
    console.log('login_sucesso:'+valor.login_sucesso);
    this.storage.set('login_sucesso', valor.login_sucesso);
  });
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...