Использование этого ключевого слова в модуле с внедрением зависимости - PullRequest
0 голосов
/ 05 мая 2019

Я пытаюсь создать пакет модуля узла, который опирается на зависимость, которая передается при инициализации.Следующий код представляет мой подход к внедрению зависимости.Все идет нормально.auth.js имеет несколько функций, которые необходимо вызывать в пакете, но я сталкиваюсь с проблемой, что this имеет значение null, поэтому я не могу получить доступ к функции watchLogin.

Использование

import Store from 'store';

const store = new Store(config);
const rootSaga = store.rootSaga;

Модуль узла магазина

index.js

import Module from "npm-module";
import AuthSaga from "auth.js"

export default class Store {
  constructor(config) {
    const dependency = Module(config);
    const authSaga = AuthSaga(dependency);

    this.rootSaga = function* rootSaga() {
      yield all([fork(authSaga.rootSaga)]);
    };
  }
}

auth.js

export default module.exports = (dependency) => {
  return {
    watchLogin: function* watchLogin() {
      const auth = dependency.auth();
      return yield call([auth, auth.signIn]);
    },
    rootSaga: function* rootSaga() {
      yield all([
        fork(this.watchLogin), // this is null
      ]);
    }
  }
};

Мне интересно, если это правильный подход для решения моей первоначальной проблемы, чтобы ввести зависимость в пакет.Если да, как я могу вызывать другие функции внутри модуля?

...