我写了2个类的组件,并且使用了一个简单的reducer,供两个组件使用mapStateToProps
。为多种网络编写单个Reducer
组分A减速器DEF:
import notify from '../global/reducers/notifyReducer';
const compAReducer = combineReducers({
notify
});
export default compAReducer;
组分B减速器DEF:
import notify from '../global/reducers/notifyReducer';
const compBReducer = combineReducers({
notify
});
export default compBReducer;
减速器看起来像这样:
import * as types from '../../../actions/actionTypes';
export default function notifyReducer(state = {}, action) {
switch (action.type) {
case types.NOTIFY_SUCCESS:
case types.NOTIFY_FAILURE:
return action.notify;
case types.NOTIFY_NULL:
return {};
default:
return state;
}
}
的问题是,当一个构成元素甲分派一个动作,它影响组件B的状态,反过来。
这不是我正在寻找的行为。我希望组件将使用相同的逻辑,但将保存不同的“状态属性”。 不同的“通知”实例。
是否有可能,还是我必须复制减速机?
非常感谢。我仍然在学习React-Redux。
感谢您的回答,但实际上是不工作。它的状态仍然在两个组件中都得到更新(所以在分派动作之后,它们也保持相同的ID)。 还,如果之前我想通知是用于显示消息的简单的字符串的状态,现在是用ID作为键和字符串值的对象,这不是声明,并很奇怪。 我会阅读更多关于它..感谢 – Chen
仅仅因为数据稍微复杂并不意味着它不再声明。它可能不像你想要的那么简单,但是将数据封装在带有ID的对象中并不奇怪。 –
你完全正确 - 这种方法有很多优点。但我希望国家保持简单 - 只是一个简单的字符串。我正在努力使这个观点成为国家的镜子。并通知的消息应该是..只是一个字符串。 其实我解决它使用定制的高位降低: http://redux.js.org/docs/recipes/reducers/ReusingReducerLogic.html 所以现在我可以针对国家的特定区域,无需增加额外的标识符它(在实际的商店层面) – Chen