Reactjs 未设置来自redux状态的数据
我在thunk内部进行了API调用,它工作正常,reducer也给了我所需的状态,即使我使用选择器获取详细信息,但当我试图在另一个状态(myData)内设置数据时,它表示未定义 //减速器Reactjs 未设置来自redux状态的数据,reactjs,typescript,redux,redux-toolkit,Reactjs,Typescript,Redux,Redux Toolkit,我在thunk内部进行了API调用,它工作正常,reducer也给了我所需的状态,即使我使用选择器获取详细信息,但当我试图在另一个状态(myData)内设置数据时,它表示未定义 //减速器 import { createAsyncThunk, createSlice } from '@reduxjs/toolkit'; interface TData { name: string; gender: string; } // my thunk export const getMyDa
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
//mydata.tsx,用户界面页面
// 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>
//调度员
const dispatch=useAppDispatch()
//使用应用程序选择器
const details=useAppSelector(myDetailsSelector,shallowEqual)
//陈述
const[myData,setMyData]=useState();
const getDetails=()=>{
常量someData:TData=
{
姓名:详情?姓名,
性别:细节?性别
}
setMyData(someData)
}
useffect(()=>{
调度(getMyData())
getDetails();
},[调度,详细信息])
{myData?.name}//这里说未定义
该州没有privacyData
属性,请更正您的代码。