在Mobiscroll中的日期字段中加入一个时间偏移量来解决此问题。
示例代码:
import { createSlice } from '@reduxjs/toolkit';
import mobiscroll from 'mobiscroll';
import 'mobiscroll/js/mobiscroll';
import 'mobiscroll/js/mobiscroll.date';
const initialState = {
date: mobiscroll.Date.parse('yyyy-mm-dd', '2022-01-01'),
};
const slice = createSlice({
name: 'mySlice',
initialState,
reducers: {
setDate: (state, action) => {
state.date = action.payload;
},
},
});
const { setDate } = slice.actions;
export const setDateAsync = (date) => (dispatch) => {
// 添加时间偏移量
const newDate = new Date(date.getTime() + date.getTimezoneOffset() * 60000);
dispatch(setDate(mobiscroll.Date.parse('yyyy-mm-dd', newDate)));
};
export default slice.reducer;
在此示例中,我们将时间偏移量添加到传递给setDateAsync
的日期中,然后将其传递给setDate
操作,以解决Mobiscroll保存日期时减少一天的问题。