У меня проблема с Vue 3 (alpha 4):
Внутри функции setup()
я пытаюсь прочитать родительский компонент. Согласно документации на https://vue-composition-api-rfc.netlify.com/api.html#setup он должен представлять родителя через аргумент context
, либо как свойство context.attrs, либо непосредственно как родитель (см. Бит SetupContext
в разделе «Типирование») , Я не считаю документацию очень ясной, если к parent
нужно обращаться напрямую с SetupContext
или с помощью SetupContext.attrs
, поэтому я попробовал оба способа, но безрезультатно.
Вот моя проблема, я могу получить доступ к SetupContext
и SetupContext.attrs
(который является прокси) просто отлично при их регистрации. SetupContext.attrs
предоставляет обычные свойства прокси ([[Handler]]
, [[Target]]
и [[IsRevoked]]
), а при проверке [[Target]]
ясно показывает родительское свойство .
При ведении журнала родителя хотя он просто выводит неопределенное:
export default {
setup(props, context) {
console.log(context);
// Output: {attrs: Proxy, slots: Proxy, emit: ƒ}
console.log(context.attrs);
// Output: Proxy {vnode: {…}, parent: {…}, appContext: {…}, type: {…}, root: {…}, …}
console.log(context.attrs.parent);
// Output: undefined
}
};
Распространение контекста дает тот же результат:
export default {
setup(props, { attrs, parent }) {
console.log(attrs);
// Output: Proxy {vnode: {…}, parent: {…}, appContext: {…}, type: {…}, root: {…}, …}
console.log(attrs.parent);
// Output: undefined
console.log(parent);
// Output: undefined
}
};
Я немного новичок в прокси в JavaScript, но из чего Я читал о них, и, например, из экспериментов с прокси, возвращаемыми реагирующим (). Я должен иметь возможность получить доступ к свойству, как обычно, с помощью объекта. Любые идеи о том, что я делаю неправильно?
Я создал codesandbox , чтобы воспроизвести проблему