反应路由器保护的路由

时间:2020-07-06 16:27:43

标签: javascript reactjs object router protected

我正在学习React Router(确切地说是受保护的路由),并且在React Router文档中有一个我几乎可以理解的功能,但是只有一行代码我看不到它是如何工作的。也许有人可以很快描述该行的功能。以下是https://reactrouter.com/web/example/auth-workflow

中的函数
function LoginPage() {
  let history = useHistory();
  let location = useLocation();

  let { from } = location.state || { from: { pathname: "/" } };
  let login = () => {
    fakeAuth.authenticate(() => {
        history.replace(from);
    });
  }; 

这行是做什么的?

let { from } = location.state || { from: { pathname: "/" } };

我知道我们正在创建一个对象,但是||会做什么?它是将两个对象连接在一起吗?我不明白。

1 个答案:

答案 0 :(得分:3)

||是逻辑或运算符

let { from } = location.state || { from: { pathname: "/" } };

这就是说,如果location.state.from不为null或未定义,则将location.state分配给变量 from ,否则分配{ pathname: "/" }