为什么我会出现Redux突变错误,以及如何避免它



我将moment用于一些日期实用程序,并将数据存储在redux中。填写表格后,在后台搜索数据,我得到了这个错误,但我只是第一次搜索时得到的:

Error: Invariant failed: A state mutation was detected between dispatches, in the path 'app.departureDate._locale._longDateFormat.ll'.  This may cause incorrect behavior.

这是减速器:

addDepartureDate(state, action) {
return { ...state, departureDate: action.payload };
}

在这里我使用数据:

const {
flightType, 
localeConfig,
departure,
arrival,
departureDate,
arrivalDate,
currency
} = useSelector(state => state.app);
const startDate = departureDate;

只有当从反应日期中选择了一个新日期,但没有抛出错误时,该值才会更改。然后,我在尝试从后端获取数据后收到错误。

moment实例是可变的且不可序列化的,因此不应保存在Redux存储中:

  • https://redux.js.org/style-guide/style-guide#do-不变异状态
  • https://redux.js.org/style-guide/style-guide#reducers-不得有副作用

更喜欢将日期值作为数字时间戳或字符串(即date.toISOString()等(保存在存储中

相关内容

  • 没有找到相关文章

最新更新