Я пытаюсь создать пакет модуля узла, который опирается на зависимость, которая передается при инициализации.Следующий код представляет мой подход к внедрению зависимости.Все идет нормально.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
]);
}
}
};
Мне интересно, если это правильный подход для решения моей первоначальной проблемы, чтобы ввести зависимость в пакет.Если да, как я могу вызывать другие функции внутри модуля?