Я делаю сайт с помощью storyblok, vue и nuxt. В моем компоненте я пытаюсь изменить цвет фона компонента, получая значение из API Storyblok и получая правильный HEX-код в моем объекте. Однако я не могу найти, что идет не так, я получаю эту ошибку.
TypeError: Cannot read property 'color1' of undefined
at VueComponent.backgroundColor (app.js:6239)
at Watcher.get (commons.app.js:25459)
at Watcher.evaluate (commons.app.js:25564)
at VueComponent.computedGetter [as backgroundColor] (commons.app.js:25814)
at Object.get (commons.app.js:23107)
at Proxy.render (app.db592a6f79c830fedfca.hot-update.js:55)
at VueComponent.Vue._render (commons.app.js:24557)
at VueComponent.updateComponent (commons.app.js:25048)
at Watcher.get (commons.app.js:25459)
at Watcher.run (commons.app.js:25534)
Я был бы очень признателен, если бы кто-нибудь помог мне с этой ошибкой. Это мой код:
В div я пытаюсь изменить цвет фона:
<div class="column image" :style="{ backgroundColor: backgroundColor}">
<div class="image" :style="{ paddingTop: getRatio }">
<img class="lazyload" :src="blok.image"/>
</div>
</div>
Мой объект в функции data ():
methods: {
data()
{
return {
colors: {
color1: '#ffffff',
color2: '#5646F2',
color3: '#000000'
}
}
}
}
Моя вычисленная функция:
backgroundColor() {
return !this.blok.color ? this.colors.color1 : this.colors[this.blok.color];
}
data()
должно находиться за пределамиmethods
, чтобы шаблон vue использовал значения - person VladNeacsu   schedule 22.03.2019data
внутри объектаmethods
. - person Varit J Patel   schedule 22.03.2019this
вbackgroundColor
функции, в этом случае вам следует привязать функцию или использовать стрелочную функцию. - person lankovova   schedule 22.03.2019