微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

来自 redux 状态的数据未设置

如何解决来自 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

// 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>




版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?