【发布时间】:2021-09-30 14:49:49
【问题描述】:
虽然clientToken 已定义并赋值,但它显示未定义的属性,为什么?
API 调用工作正常,URL 正常,但仍然显示此错误,谁能帮我解决这个问题。
以下是错误详情。
if (info && info.error) {
26 | setInfo({ ...info, error: info.error });
27 | } else {
> 28 | const clientToken = info.clientToken;
| ^ 29 | setInfo({ clientToken });
30 | }
31 | });
getToken 对象在下面。
const getToken = (userId, token) => {
getmeToken(userId, token).then(info => {
// console.log("INFORMATION", info);
if (info && info.error) {
setInfo({ ...info, error: info.error });
} else {
const clientToken = info.clientToken;
setInfo({ clientToken });
}
});
};
getmeToken 组件如下。
export const getmeToken = (userId, token) => {
return fetch(` ${API}/payment/gettoken/${userId}`, {
method: "GET",
headers: {
Accept: "application/json",
"Content-Type": "application/json",
Authorization: `Bearer ${token}`
}
}).then(response => {
return response.json();
})
.catch(err => console.log(err))
}
谁能帮我解决这个问题?
【问题讨论】:
-
info没有属性clientToken,因为它返回undefined。登录info并检查其结构 -
const Paymentb = ({ products, setReload = f => f, reload = undefined }) => { const [info, setInfo] = useState({ loading: false, success: false, clientToken:空,错误:“”,实例:{} });
-
函数
getmeToken返回response.json();这是你的info而不是状态[info, setInfo] -
getmeToken(userId, token).then(info => {在这个块中info不是一个状态 -
@VitaliyRayets 是的
标签: javascript node.js reactjs mern