在redux存储中存储类实例

时间:2016-10-24 13:19:45

标签: reactjs redux

我有几个类,我想在redux商店中存储它的实例。

这些课程是单身人士,每个班级只有一个实例 我将它们存储在具有类名称(或唯一的东西)作为键的状态中。

我可以存储它们很好,但组件不会重新渲染。

我认为这是因为我总是在改变实例(因为它是单例)

我应该如何在redux中存储/使用类实例?
如果它是单音实例怎么办?

  • 修改

我在单例实例中有简单的对象/数组 啊,其中还有一个功能(动作创作者) (将由redux-thunk执行)

实际上,如果这有问题,或者不是最佳做法,我想我可以在商店中存储actionCreator的名称并且名称为> actionCreator映射到商店外的某个地方。

其中一个动作创建者位于

之下
 function datetimeStockExtrasForDateRange(date) {

   return function (dispatch, getState) {

     const state = getState()
     const { calendar } = state
     const calendarPeriod = calendar.calendarPeriod

     let visibleDates = calendarUtil.visibleDates(date, calendarPeriod)

     const filteredDates = visibleDates.filter( (date) => {
       var dateFormatted = moment(date).format('YYYY-MM-DD')
       if (state.dates[dateFormatted] && state.dates[dateFormatted].available_datetime_stock_extras_fetched) {
         return false
       }
       return true
     })

     if (!_.isEmpty(filteredDates)) {
       const { datetime_stock_rule_set_id } = state.calendar
       const date_start = filteredDates[0]
       const date_end = filteredDates[filteredDates.length - 1]
       dispatch(
         DatetimeStockExtra.fetchAvailableDatetimeStockExtrasForDateRangeAction(
           datetime_stock_rule_set_id,
           date_start,
           date_end
         )
       )
     }
   }
 }

1 个答案:

答案 0 :(得分:1)

事实上,它是一个单身人士告诉我它是可变的,并且你的减速器正在直接修改它而不是为了响应动作而投射它的新实例。这是对redux的误用,会导致react-redux无法识别变化。