我仍在学习诺言,我有点了解诺言如何工作,但在这一点上,这超越了我。
因此,我正在使用imgur API上传图像,并且我有一个Facebook共享按钮,该按钮具有一个“ beforeOnClick”道具,该道具需要一个返回承诺的函数,但我不知道该怎么做。
我的上传到imgur的代码
const uploadApi = async (image) => {
// Client ID
const CLIENT_ID = 'xxxx';
// Set headers for post request to imgur
const config = {
headers : {
'Authorization': 'Client-ID ' + CLIENT_ID,
},
type: 'URL'
}
Axios.post('https://api.imgur.com/3/image', image, config)
.then((res) => {
setlink(res.data.data.link);
});
}
反应共享库组件
<FacebookShareButton children={<FacebookIcon size={32} round={true} />} beforeOnClick={} url={link}/>
根据文档,在OnOnClick必须返回已实现的承诺之前,我很确定我的uploadApi函数会返回一个承诺,但老实说我不知道。。
感谢任何帮助。
您需要返回从Axios请求中获得的诺言,只需将return放在axios请求上,这样就可以了。
const uploadApi = async (image) => {
// Client ID
const CLIENT_ID = 'xxxx';
// Set headers for post request to imgur
const config = {
headers : {
'Authorization': 'Client-ID ' + CLIENT_ID,
},
type: 'URL'
}
return Axios.post('https://api.imgur.com/3/image', image, config)
.then((res) => {
setlink(res.data.data.link);
});
}