reactjs - 反应减速器工具包调度不起作用
问题描述
我写了个人资料页面,我想从 api 获取个人资料数据,但我的调度不起作用,在 getProfileDetails 函数调度不起作用。
import {createSlice} from "@reduxjs/toolkit";
import axios from "../components/axios";
import urls from "../components/Urls";
import authHeader from "../components/authHeader";
const profileSlice = createSlice({
name: 'profile',
initialState: {
profileDetails: [],
},
reducers: {
setProfileDetails: (state, action) => {
state.profileDetails = action.payload;
//return { profileDetails: action.payload };
},
}
});
export const getProfileDetails = (dispatch) => {
axios.get(urls.user_details, { headers: authHeader() }).then((response) => {
dispatch(setProfileDetails(response.data.results[0]));
}).catch(e => {
console.log(e);
});
}
export const { setProfileDetails } = profileSlice.actions;
export default profileSlice.reducer;
解决方案
reducer 必须始终返回一个新对象,因此您的注释版本实际上更好。最好是这样的:
const profileSlice = createSlice({
name: 'profile',
initialState: {
profileDetails: [],
},
reducers: {
setProfileDetails: (state, action) => ({ ...state, profileDetails: action.payload }),
}
});
推荐阅读
- reactjs - React Router –在获取的 html 中复制
- android - 是否存在 firebase 实时数据库服务器日志?
- ios - 如何使用 XCUITests 测试 UITableview 部分及其单元格?
- linux - 如何在 linux 中生成最小的 Elf64 可执行文件?
- amazon-web-services - Azure AD API 用于基于命令行的 SAML2 SSO(用于 AWS 联合登录)
- c# - Telerik asp.net 核心网格不显示返回的数据
- javascript - 在这种情况下如何在 JavaScript 中获取 PHP 变量?
- swift - 没有调用 didBegin
- laravel - 如何在计数的帮助下在 laravel 中动态创建重复项?
我有一个带有 2 个输入框的表单。1。股东 Count 和 2.directors Count 用户将用两个输入的计数填写该表格。之后在第二个刀片文件中,实际
table
是可填充的。我正在使用控制器发送我的数组计数:
$data = array('shareholders'=>$request->com_shareholder_c
- algorithm - Ford-Fulkerson 算法和最大流量最小割定理