我有几个类,我想在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
)
)
}
}
}
最佳答案 事实上,它是一个单身人士告诉我它是可变的,并且你的减速器正在直接修改它而不是为了响应动作而投射它的新实例.这是对redux的误用,会导致react-redux无法识别变化.