2.4.2
https://jsfiddle.net/50wL7mdz/50757/
Доступ к $ attrs как к объекту в контексте компонента, когда не были предоставлены реквизиты.
$ attrs - это объект, содержащий нераспознанные реквизиты. Поэтому я ожидал бы пустой объект, если в теге компонента не указаны реквизиты.
$ attrs не определен
Из любопытства, с какой проблемой вы сталкиваетесь, имея неопределенный $attrs
? Вы получаете доступ к $attrs.something
? (если да, то почему?)
edit: я также спрашиваю, потому что наличие $attrs
равное undefined, когда нет атрибутов, действительно может быть полезно
@greegus , если вы делаете что-то вроде if ($attrs.myProp)
вы можете сделать if ($attrs?.myProp)
, используя babel-plugin-transform-optional-chaining .
Я бы судить, что это ожидаемое поведение, но это спорно.
пинг @greegus
Просто столкнулся с этим, и для меня было определенно неожиданно, что $attrs
когда-либо должно быть undefined
.
Например, если вы пишете приложение для задач, которое начинается без задач, было бы очень странно начинать список с undefined
вместо []
. Вам нужно будет добавить операторы if
(или необязательную цепочку) по всему вашему приложению. Этот случай похож.
Для нишевых случаев, когда пользователь хочет проверить, существуют ли какие-либо $attrs
, по-прежнему можно использовать Object.keys($attrs).length
, так что этот случай все еще рассматривается.
Часть, которая действительно убеждает меня, что это ошибка, заключается в том, что $attrs
_is_ устанавливается в пустой объект, когда свойство $attrs
потребуются обе стратегии:
$attrs && Object.keys($attrs).length
@chrisvfritz меня убедил - это баг.
@LinusBorg Похоже, что сейчас над этой ошибкой никто не работает. Могу я получить за это пиар?
Конечно!
Самый полезный комментарий
Просто столкнулся с этим, и для меня было определенно неожиданно, что
$attrs
когда-либо должно бытьundefined
.Например, если вы пишете приложение для задач, которое начинается без задач, было бы очень странно начинать список с
undefined
вместо[]
. Вам нужно будет добавить операторыif
(или необязательную цепочку) по всему вашему приложению. Этот случай похож.Для нишевых случаев, когда пользователь хочет проверить, существуют ли какие-либо
$attrs
, по-прежнему можно использоватьObject.keys($attrs).length
, так что этот случай все еще рассматривается.Часть, которая действительно убеждает меня, что это ошибка, заключается в том, что
$attrs
_is_ устанавливается в пустой объект, когда свойство$attrs
потребуются обе стратегии: