当我尝试使用 auth0 的parseHash时,我是auth0 的新手。令我惊讶的是,这个函数以某种方式返回 null。我试图偷看源代码,看来这个函数最终试图返回一些东西。
这是让我感到困惑的代码部分:
import React from 'react';
import { Link } from '@reach/router';
import './Callback.sass';
export const Callback = ({ auth, navigate }) => {
let result = auth.parseHash((err, authResult) => {
if (err) {
return (
<div className="error">
<h1>{err.error}</h1>
<p>{err.errorDescription}</p>
<Link to="/">Home</Link>
</div>
);
} else {
console.log({ authResult });
return 'profile';
// localStorage.setItem('authResult', JSON.stringify(authResult));
// navigate('/profile');
}
});
console.log({ result });
if (result) return result;
return <React.Fragment />;
};
我认为这真的令人困惑。控制台记录 'authResult' 部分,但它result
是undefined
. (我什至用异步等待进行了测试,仍然无法得到我期望的结果)。
我目前只是包装结果来解决这个问题。
这是一个错误吗?还是我使用这种方法的方式不正确?