【发布时间】:2017-12-17 14:41:59
【问题描述】:
我们正在尝试将我们的项目拆分为多个部分:
我们有库,例如 user-library 和 image-library。 每个库都有自己的 reducer 和 action,例如:
对于用户库:
{isloggein: false} // store
function logIn() { //action creator
return {
type: 'LOGIN'
};
}
图片库:
{images: []} // store
function addImages() { //action creator
return {
type: 'ADDIMAGES'
};
}
现在我们决定在用户登录后立即addImages。问题是图像存储现在与用户操作无关(这是代码拆分的主要思想)。我们通过使用这样的 sagas 解决了这个问题:
function* addImagesWhenLogIn() {
while (true) {
yield take('LOGIN');
yield put(addImages());
}
}
但它不是不透明的(我们调度了一个动作,但实际上会调度 2 个动作)。虽然在 sagas 中有应用程序的业务逻辑很好,但我认为 take -> put 序列不是这种情况下的最佳解决方案,我正在寻找更好的方法。
【问题讨论】:
标签: javascript reactjs redux react-redux redux-saga