【发布时间】:2018-05-23 21:13:27
【问题描述】:
是否可以向操作添加更多信息,以便特定于组件的减速器(以及 sagas/您正在使用的任何副作用库)可以过滤它们?
例子:
function reducerComponentA(state, action) {
switch (action.type) {
case START_FETCH:
return {
...state,
isLoading: true,
};
break;
case START_FETCH_SUCCESS:
return {
...state,
isLoading: false,
};
break;
}
return state;
}
和
function reducerComponentB(state, action) {
switch (action.type) {
case START_FETCH:
return {
...state,
isLoading: true,
};
break;
case START_FETCH_SUCCESS:
return {
...state,
isLoading: false,
};
break;
}
return state;
}
注意两个减速器如何观察相同的动作并对其采取行动(显示加载动画)。现在,如果这些减速器相关的屏幕/组件都在内存中,START_FETCH 将导致它们都显示加载动画,甚至可能重叠(因为它是全局的)。按屏幕/组件过滤操作是一个好的解决方案吗?
像这样:
function reducerComponentA(state, action) {
if (action.currentScreen === 'ScreenA') {
switch (action.type) {
...
}
}
return state;
}
这似乎是 React Native 的更多问题,因为如果您使用的是 Navigator,则可能会同时加载多个屏幕。
【问题讨论】:
标签: reactjs react-native redux react-redux