首页 > 解决方案 > React Router 受保护的路由

问题描述

我正在学习 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: "/" } };

我知道我们正在创建一个对象,但是||做什么呢?是否将两个对象合二为一?我不明白。

标签: javascriptreactjsobjectrouterprotected

解决方案


||是逻辑 OR 运算符

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

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


推荐阅读