我正在尝试创建一个依赖于初始化时传递的依赖项的节点模块包。以下代码表示我注入依赖项的方法。到目前为止,一切都很好。 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
]);
}
}
};
我想知道这是否是解决我的最初问题,将依赖项注入程序包的正确方法。如果是这样,如何在模块中调用其他功能?