我正在使用react typescript和redux工具包,为了获得用户信息,我遇到了麻烦。这是一个userSlice.ts:
export const userSlice = createSlice({
name: "user",
initialState: {
user: null,
},
reducers: {
setUser: (state, action) => {
state.user = action.payload;
},
},
});
这是protectedRoute.tsx一部分:
export function ProtectedRoute(props: { children: any }) {
const {user} = useSelector((state: any) => state.user);
const dispatch = useDispatch();
const navigate = useNavigate();
const getUser = async () => {
try {
dispatch(showLoading());
const response = await axios.post(
"/api/users/user",
{ token: localStorage.getItem("token") },
{
headers: {
Authorization: `Bearer ${localStorage.getItem("token")}`,
},
}
);
dispatch(hideLoading());
if (response.data.success) {
console.log(response.data.data.isAdmin);
dispatch(setUser(response.data.data));
问题是状态。用户只能取一个值。我想从后端注册所有数据。
我怎样才能做到
1条答案
按热度按时间btqmn9zl1#
state.user只能取一个值是什么意思?如果你的意思是你想存储所有来自服务器的关于user的数据,你也可以把user转换成一个带有预期对象的类型,并传递整个response对象。