【发布时间】:2021-09-27 06:28:19
【问题描述】:
我尝试使用 redux 并开始使用 Redux Toolkit。我通过 createAsyncThunk 调用数据并获得了结果,但我不知道在哪里可以处理 localStorage.setItem。我应该用 Reducers 还是其他方式来处理它?
【问题讨论】:
-
你可以在reducers中设置它,这也可以帮助你更新状态
标签: reactjs redux redux-toolkit
我尝试使用 redux 并开始使用 Redux Toolkit。我通过 createAsyncThunk 调用数据并获得了结果,但我不知道在哪里可以处理 localStorage.setItem。我应该用 Reducers 还是其他方式来处理它?
【问题讨论】:
标签: reactjs redux redux-toolkit
由于从localStorage 设置和获取项目是一种副作用,并且像redux-thunk 这样的中间件用于执行副作用,因此在createAsyncThunk 而不是reducers 中这样做可能是一个好主意:
例如:
const fetchUserById = createAsyncThunk(
'users/fetchByIdStatus',
async (userId, thunkAPI) => {
const response = await userAPI.fetchById(userId)
// keep some data in localStorage
localStorage.setItem("lastVisit",JSON.stringify(response.data.lastVisit))
// proceed to send data to reducers
return response.data
}
)
【讨论】: