Vue: функциональный компонент не получает реквизит - PullRequest
0 голосов
/ 25 февраля 2019

Компонент smart-list выполняет свою работу и отображает правильный компонент.Это просто не передает реквизит.Я ожидаю, что они будут в context.data, но это undefined.

SmartList.vue

import EmptyList from "./EmptyList";
import FullList from "./FullList";

export default {
  functional: true,
  props: {
    items: {
      type: Array
    }
  },
  render(h, { props, data, children }) {
    if (props.items.length > 0) {
      return h(FullList, data, children);
    } else {
      return h(EmptyList, data, children);
    }
  }
};

Я подготовил пример кода и коробки

Что мне не хватает?

1 Ответ

0 голосов
/ 25 февраля 2019

Я нашел решение.В компоненте smart-list я изменил одну строку:

import EmptyList from "./EmptyList";
import FullList from "./FullList";

export default {
  functional: true,
  props: {
    items: {
      type: Array
    }
  },
  render(h, { props, data, children }) {
    if (props.items.length > 0) {
-    return h(FullList, data, children);
+    return h(FullList, { attrs: props }, children);
    } else {
      return h(EmptyList, data, children);
    }
  }
};

Теперь это работает.Может кто-нибудь указать мне, почему передача полного объекта data не работает??

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...