在Taro里,使用微信的分享,大概率都会遇到异步请求参数的问题,以下是常规的配置
useShareAppMessage(() => {
const wxConfig = {
title: `我是标题`,
desc: '我是描述文案',
path: `/pages/index/index?aaa=${推广ID}`,
imageUrl: `xxxxx`, // 封面图
};
return {
...wxConfig,
promise: getAsyncWxConfig(wxConfig),
};
}
});
其中按照微信官方文档描述,正常的静态文案必须要有,然后有异步请求的话,要加个promise参数,3秒内必须resolve,resolve最终版本的完整json,否则将直接使用静态的配置文案
关键在于 promise,或者说getAsyncWxConfig 这个函数,一开始我用的是async的写法,即
const getAsyncWxConfig = async ()=>{
const data = await xxx();
return {
title: `我是标题`,
desc: '我是描述文案',
path: `/pages/index/index?aaa=${data.推广ID}`,
imageUrl: `xxxxx`, // 封面图
}
}
这样写也是promise的resolve,但是这样的写法在微信小程序的分享里不生效,他会直接用静态文案,那么此时的推广ID就是字符串的undefined
需要把写法改成
const getAsyncWxConfig = ()=>{
return xxx().then(data=>{
return {
title: `我是标题`,
desc: '我是描述文案',
path: `/pages/index/index?aaa=${data.推广ID}`,
imageUrl: `xxxxx`, // 封面图
}
})
}