如何解决来自 redux 状态的数据未设置
我在 thunk 中进行了 API 调用,它工作正常,reducer 也给了我所需的状态,即使我使用选择器获取详细信息,但是当我尝试在另一个状态 (myData) 中设置数据时,它说未定义。
// 减速器
import { createAsyncThunk,createSlice } from '@reduxjs/toolkit';
interface TData {
name: string;
gender: string;
}
// my thunk
export const getMyData = createAsyncThunk('someUrl',async () => {
const { success } = await SomeApiCall();
return success?.data as TData;
});
const mySliceInitalData: TData = { data: {} } as TData;
const mySlice = createSlice({
name: 'profile',initialState: {
loading: false,mySliceData: mySliceInitalData,},reducers: {},extraReducers: (builder) => {
builder.addCase(getMyData.pending,(state) => {
state.loading = true;
});
builder.addCase(getMyData.fulfilled,(state,action) => {
console.log('action ',action.payload);
state.privacyData = action.payload;
state.loading = false;
});
builder.addCase(getMyData.rejected,(state) => {
state.loading = false;
});
},});
//选择器
const myDetailsSelector = (state: RootState) => state.Profile.mySliceData
// dispatcher
const dispatch = useAppdispatch()
// use app selector
const details = useAppSelector(myDetailsSelector,shallowEqual)
// state
const [myData,setMyData] = useState<TData>();
const getDetails = () => {
const someData : TData =
{
name:details?.name,gender:details?.gender
}
setMyData(someData)
}
useEffect(() => {
dispatch(getMyData())
getDetails();
},[dispatch,details])
<div>
{myData?.name} // it says undefined here
</div>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。