Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 如何使用redux从我自己的api获取数据?_Reactjs_Typescript_Redux_Redux Thunk - Fatal编程技术网

Reactjs 如何使用redux从我自己的api获取数据?

Reactjs 如何使用redux从我自己的api获取数据?,reactjs,typescript,redux,redux-thunk,Reactjs,Typescript,Redux,Redux Thunk,我试图使用redux从我自己的api获取数据,但我得到一个空对象,不知道为什么会发生这种情况。API是使用express.js和MongoDB编写的。当我使用邮递员时,它就起作用了。我也使用redux thunk。谁能给我解释一下,怎么了? 感谢您的帮助 这是我的代码: 以下是我的行动: export const fetchclientssaccess=(客户端:任意):FetchDataAction=>{ 返回{ 类型:客户端\u获取\u数据\u成功, 有效载荷:客户端 } } 导出常量cl

我试图使用redux从我自己的api获取数据,但我得到一个空对象,不知道为什么会发生这种情况。API是使用express.js和MongoDB编写的。当我使用邮递员时,它就起作用了。我也使用redux thunk。谁能给我解释一下,怎么了? 感谢您的帮助

这是我的代码:

以下是我的行动:

export const fetchclientssaccess=(客户端:任意):FetchDataAction=>{
返回{
类型:客户端\u获取\u数据\u成功,
有效载荷:客户端
}
}
导出常量clientsFetchData=(url:string)=>{
退货(发货:任何)=>{
获取(url)
。然后(响应=>{
如果(!response.ok){
抛出新错误(response.statusText);
}
返回响应;
})
。然后(响应=>{
json();
})
。然后(客户端=>{
分派(获取客户端成功(客户端))
})
}

};
我觉得您的请求将转到
/api/clients
,但没有任何baseURL附加到它

您能否确认
fetch
实际上正在调用一个类似-
http://localhost:4000/api/clients
而不仅仅是
/api/clients

您是否也可以尝试将
catch
块添加到
fetch
调用中,并将
return
关键字添加到
respose.json
中,类似这样:


获取(url)
。然后(响应=>{
如果(!response.ok){
抛出新错误(response.statusText);
}
返回响应;
})
。然后(响应=>{
返回response.json();//{
分派(获取客户端成功(客户端))
})

.catch(err=>console.log(“ERROR”,err);//尝试将链接的
catch
添加到您的
客户端fetchdata
,函数可能会引发错误。有时,如果您没有设置正确的
contentType
并尝试将其转换为json,则可能是一个原因,@Anuja I添加了一个catch,但它不会引发任何错误,因为这样的异步请求必须具有
async
等待
否则您将不会收到响应,因为功能不等待。我添加了它,什么也没有changed@arisha我认为您需要一步一步地调试,1.检查api调用是否正在进行并返回数据2.检查是否正在更新redux状态2.检查是否正在将其返回到连接的组件谢谢对于您的回答,我也尝试使用此url,但没有任何更改,可能fetch函数有问题。但是我没有得到任何错误。您的nodejs服务器的url是什么??,我遵循此url,api工作正常,那么前端中的
fetch
调用可能应该调用
http://localhost:4000/api/clients
是的,我是陈我对它进行了修改,现在它调用了这个url,但我仍然没有得到任何信息(