【问题标题】:Stateless Event Listeners in React ReduxReact Redux 中的无状态事件监听器
【发布时间】:2017-06-17 02:31:00
【问题描述】:

我需要在我的基于事件的 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;

}

【问题讨论】:

    标签: redux flux


    【解决方案1】:

    这听起来像是中间件的好案例。以https://github.com/evgenyrodionov/redux-logger 为例。

    那么您的商店可能看起来像:

    const middleware = [
      myAnalyticsMiddleware()
    ];
    
    export default createStore(reducer, applyMiddleware(...middleware));
    

    【讨论】:

    • 好的,这让我朝着正确的方向前进,这可能更像我正在寻找的东西:github.com/ezekielchentnik/redux-reporter
    • 另外,我看不出该示例如何适用于我的问题。
    • 该示例适用,因为它会挂接到商店并在商店更改时执行某些操作(在本例中为日志记录,在您的情况下它将发送分析数据)。
    猜你喜欢
    • 2017-02-28
    • 1970-01-01
    • 2019-09-17
    • 2021-10-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-10
    相关资源
    最近更新 更多