【问题标题】:What does ?. operator mean in JavaScript [duplicate]有什么作用?。 JavaScript中的运算符均值[重复]
【发布时间】:2021-12-07 16:48:17
【问题描述】:

我正在使用 react-hook-form 并且遇到了?操作员。这是什么意思? 以下是有关如何使用它的一些上下文

<span>{errors?.name?.message}</span>

错误是从 useForm() 中解构的,像这样

const { register, handleSubmit, formState: { errors } } = useForm();

这是一个完整的表单输入,可以画出更清晰的画面

<input 
   type="text" 
   id='name' 
   name='name'
   {...register('name', {
      required: {
        value: true,
        message: 'Name cannot be empty'
      }
    })}
    placeholder='John Doe' 
    className='px-6 w-full rounded-md py-2 text-gray-700 focus:outline-none' 
                    
   />
<span>{errors?.name?.message}</span>

【问题讨论】:

标签: javascript reactjs react-hook-form


【解决方案1】:

?. 是可选的链接运算符。这是 MDN 参考:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/Optional_chaining

例如,如果你运行下面的代码,你会遇到一个错误

a = {}
console.log(a.b.c)

Uncaught TypeError: Cannot read property 'c' of undefined

但如果你不想添加try-catch,但该值不存在是可以接受的,那么你可以执行以下操作

a = {}
console.log(a.b?.c)

这将导致undefined 被打印到控制台。访问 c 的错误被静默处理。

【讨论】:

    猜你喜欢
    • 2023-03-24
    • 1970-01-01
    • 2021-10-29
    • 2011-01-03
    • 2022-06-09
    • 2016-07-24
    • 2014-03-07
    • 1970-01-01
    相关资源
    最近更新 更多