【发布时间】:2021-10-13 17:14:11
【问题描述】:
我正在尝试创建一个通知组件。 我的通知组件处于根级别,当用户尝试登录时,异步函数的进程会转发给他,即等待完成或拒绝。
问题是我不知道如何从 userSlice 调用通知缩减程序,或者即使这可能是一个好方法。
用户切片
import { createSlice, createAsyncThunk } from "@reduxjs/toolkit";
import axios from "axios";
const initialUserState = {
currentUser:null
}
export const getUser = createAsyncThunk(
'user/getUser',
async (endpoint, data) => {
return(
await axios.post(endpoint, data)
.then(res =>{
return res.data.user
})
.catch(error =>{
throw Error(error.response.data)
})
)
}
)
const userSlice = createSlice({
name: 'user',
initialState: initialUserState,
reducers:{
currentUser(state, action){
state.currentUser = action.payload
}
},
extraReducers:
(builder) => {
builder.addCase(getUser.pending, ()=>{
console.log("authing")
})
builder.addCase(getUser.fulfilled, (state, action)=>{
state.currentUser = action.payload
console.log("fulfilled")
})
builder.addCase(getUser.rejected, (state, action)=>{
console.log("failed")
alert(action.error.message)
})
}
})
export const userActions = userSlice.actions;
export default userSlice.reducer;
通知切片
import React from 'react'
import { useSelector } from 'react-redux'
function Notification() {
const toast = useSelector(state => state.notification)
console.log(toast)
return (
toast.active &&
<div className="notification" style={{backgroundColor:toast.backgroundColor}} >
{toast.message}
</div>
)
}
export default Notification
我想在调用 userSlice 中的额外减速器之一时更改通知状态
【问题讨论】:
标签: reactjs redux react-redux reducers redux-toolkit