gpt4 book ai didi

reactjs - 在 redux 存储中存储类实例

转载 作者:行者123 更新时间:2023-12-03 13:51:28 25 4
gpt4 key购买 nike

我有一些类,我想将其实例存储在 redux 存储中。

这些类是单例的,每个类只有一个实例。
我将它们存储在状态中,并以类名(或唯一的名称)作为键。

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

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

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

  • 编辑

我在单例实例中有普通对象/数组。
啊,里面还有一个函数( Action 创建者)。
(将由 redux-thunk 执行)

实际上,如果这是有问题的,或者不是最佳实践,我想我可以将 actionCreator 的名称存储在商店中,并将 name -> actionCreator 映射到商店之外的某个位置。

下面是 Action 创建者之一

 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
)
)
}
}
}

最佳答案

事实上,它是一个单例,这表明它是可变的,并且您的 reducer 直接修改它,而不是投影它的新实例来响应操作。这是对 redux 的误用,会导致react-redux无法识别更改。

关于reactjs - 在 redux 存储中存储类实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40219561/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com