我需要在基于事件的react / redux应用程序中添加功能。
我使用redux并且我有通过操作改变我的应用程序状态的reducer。一些操作例如:(USER_CLICKED_BUTTON,AJAX_CALL_STARTED,AJAX_CALL_ERROR,AJAX_CALL_SUCCESS)
我想为这些事件添加监听器,并做一些与状态无关的工作,特别是调用另一个API,如分析。
添加另一个" reducer"是否有意义?没有真实状态,只是听取这些行动和行为(例如呼吁ga(...)?)
类似的东西:
var Actions = require ('../actions/actionTypes');
var gaReducer = function(state, action) {
switch (action.type){
case Actions.USER_CLICKED_BUTTON:
ga('send', 'event', 'user-clicked-button');
break;
}
return state;
}
答案 0 :(得分:1)
这听起来像中间件的好例子。查看https://github.com/evgenyrodionov/redux-logger以获取示例。
然后你的商店看起来像:
const middleware = [
myAnalyticsMiddleware()
];
export default createStore(reducer, applyMiddleware(...middleware));