Reactjs Redux Toolkit-从未调用GET,选项从未返回
我正在将我的应用程序转换为使用新的React Redux工具包,但在尝试调用GET函数时遇到了问题。选项调用已启动,但从未调用GET。我想不出有什么理由可以让thunk部分运行。代码的结构一直在使用较旧的Redux设置工作,因此本质上,我唯一改变的从工作变为不工作的方法就是使用工具包,特别是Reactjs Redux Toolkit-从未调用GET,选项从未返回,reactjs,redux,redux-thunk,redux-toolkit,Reactjs,Redux,Redux Thunk,Redux Toolkit,我正在将我的应用程序转换为使用新的React Redux工具包,但在尝试调用GET函数时遇到了问题。选项调用已启动,但从未调用GET。我想不出有什么理由可以让thunk部分运行。代码的结构一直在使用较旧的Redux设置工作,因此本质上,我唯一改变的从工作变为不工作的方法就是使用工具包,特别是createAsynchRunk() 在我的登录页面组件的mapDispatchToProps fetchProfile: email => dispatch(fetchProfileAction({
createAsynchRunk()
在我的登录页面组件的mapDispatchToProps
fetchProfile: email => dispatch(fetchProfileAction({id:email})),
export const fetchProfileAction = createAsyncThunk(
'profile/fetchProfile',
async (params, thunkAPI) => {
const response = await api.userApi.fetchProfile(params);
return response.data;
}
);
设置我的asyncThunk
fetchProfile: email => dispatch(fetchProfileAction({id:email})),
export const fetchProfileAction = createAsyncThunk(
'profile/fetchProfile',
async (params, thunkAPI) => {
const response = await api.userApi.fetchProfile(params);
return response.data;
}
);
API调用
fetchProfile: (params) => axios.get(authEndpointUrl(`users/${params.id}`)).then(response => response.data),
和日志语句。选项没有标题或cookie。。。
您很可能试图在违反CORS策略的同时从另一个域获取某些内容。检查浏览器的控制台,您可能会发现关于CORS策略已损坏的警告,如果是这样,您应该联系API管理员并要求他修复其标题(这是后端问题)
Axios正在调用
OPTIONS
以检查给定URL的可用方法,此时OPTIONS
标头被CORS阻止,或者它们返回的信息GET
/POST
不可用,因此axios甚至不尝试调用端点。您很可能在破坏CORS策略的同时尝试从另一个域获取某些内容。检查浏览器的控制台,您可能会发现关于CORS策略已损坏的警告,如果是这样,您应该联系API管理员并要求他修复其标题(这是后端问题)
Axios正在调用
OPTIONS
以检查给定URL的可用方法,此时OPTIONS
标头被CORS阻止,或者它们返回的信息GET
/POST
不可用,因此Axios甚至不尝试调用端点。您正在读取response.data.data,在api中返回response.data,在操作中返回response.data。你能在网络选项卡中看到请求吗?你能在redux开发工具中看到调度的内容吗?你能看到这些操作导致的状态变化吗?是的,我明白你关于引用response.data.data的观点-但是,它甚至没有达到那个点。GET永远不会被调用,所有操作都会在调用选项后停止。您正在读取response.data.data,在api中返回response.data,在操作中返回response.data。你能在网络选项卡中看到请求吗?你能在redux开发工具中看到调度的内容吗?你能看到这些操作导致的状态变化吗?是的,我明白你关于引用response.data.data的观点-但是,它甚至没有达到那个点。GET永远不会被调用,所有操作都会在选项被调用后停止。是的,甚至比这更简单。服务器没有运行,所有的登录API调用都将转到Cognito,所以在发生GET之前,一切都正常运行。谢谢你的常识。是的,比这更简单。服务器没有运行,所有的登录API调用都将转到Cognito,所以在发生GET之前,一切都正常运行。谢谢你给了我常识。