开发者问题收集

未处理的拒绝(TypeError):无法读取未定义的属性(读取“错误”)

2021-09-29
5579
const getToken = (userId, token) => {
  22 |   getmeToken(userId, token).then((info) => {
  23 |     console.log("INFO COMING", info);
> 24 |     if (info.error) {
  25 |      setInfo({ ...info, error: info.error });
  26 |     } else {
  27 |       const clientToken = info.clientToken;

未处理的拒绝是什么意思,无法读取未定义的属性?

我已经定义了 错误 并为其分配了一个值,下面是 useState 的代码

  const [info, setInfo] = useState({
    loading: false,
    success: false,
    clientToken: null,
    error:"",
    instance: {},
  });

根据上述代码,我已经定义并分配了错误的值,那么为什么浏览器仍然显示 无法读取未定义的属性 。有人可以解释一下吗?

getmeToken 函数代码如下

export const getmeToken = (userId, token) => {
    return fetch(` ${API}/payent/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))
}
1个回答

首先,检查 getmeToken 函数的输出。然后,您可以使用 info?.error 而不是 info.error 来处理此错误。

编辑 : 再次检查 ${API}/payent/gettoken/${userId 网址。我认为 /payent/ 不正确( /payment/ 是正确的)

Milad Jafari
2021-09-29