我有一个对象,我try 使用析构来访问对象属性. 问题是,在某些情况下,状态本身是未定义的. 因此,我想添加可选的链接.然而,我被困住了...

const {state: {one, two, three, four}} = useLocation()

我的解决方案是:

const {state?: {one, two, three, four}} = useLocation()

Problem:个 如何为这样的语法添加可选的链接?

否则,解决方案将是

    useEffect(() => {
    if (!state) {
      setUserBirth(state?.userBirth);
      setUserEmail(state?.userEmail);
      setUserTel(state?.userTel);
      setUserName(state?.userName);
      setType(state?.type);
    }
  }, [state]);

但是我想知道我是否可以将可选的链接直接应用到对象析构上

推荐答案

你可以做这样的事情

const {state: {one, two, three, four} = {}} = useLocation()

这至少可以防止在stateundefined时出现错误

Javascript相关问答推荐

如何保持子画布元素的1:1宽高比?

我的glb文件没有加载到我的three.js文件中

如何在Angular中插入动态组件

无法在nextjs应用程序中通过id从mongoDB删除'

在nextjs服务器端api调用中传递认证凭证

为什么promise对js中的错误有一个奇怪的优先级?

MathJax可以导入本地HTML文档使用的JS文件吗?

使用JQuery单击元素从新弹出窗口获取值

用于编辑CSS样式的Java脚本

try 使用javascript隐藏下拉 Select

NG/Express API路由处理程序停止工作

OpenAI转录API错误请求

MongoDB受困于太多的数据

如何根据输入数量正确显示alert ?

JavaScript将字符串数字转换为整数

通过解构/功能组件接收props-prop验证中缺少错误"

如何在Java脚本中并行运行for或任意循环的每次迭代

为什么这个最小Angular 的Licial.dev设置不起作用?

将字符串解释为数字;将其重新编码为另一个基数

在执行console.log(new X())时记录一个字符串