Ваша проблема в том, что атрибуты в HTML не имеют заглавных букв. Поэтому, когда вы создаете переменные с заглавными буквами, они не будут заглавными в HTML, вместо этого они разделяются символами "-"
@Prop() cardImage: string;
@Prop() linkText1: string;
@Prop() linkText2: string;
. Эти три не являются атрибутами cardImage
, linkText1
, linkText2
в теге HTML вместо этого они:
card-image
, link-text1
, link-text2
Таким образом, ваш тег будет:
<proj-slider card-image="https://i.imgur.com/NPV7bmk.png" title="Calculator" link1="alexmercedcoder.com" link-text1="git"
link2="alexmercedcoder.com" link-text2="live"></proj-slider>
Обновить
Поскольку тег title приводит к ошибке, я хочу добавить здесь пример того, как вы в любом случае можете использовать тег title:
import { ..., Host } from '@stencil/core';
@Prop({reflect:true, mutable: true}) title:string;
private hostElement: HTMLElement;
render() {
return (
<Host ref={(el) => this.hostElement = el as HTMLElement}>
YOUR HTML LIKE IT WAS BEFORE
</Host>
)
}
componentDidUpdate(){
if(this.hostElement)
this.title = this.hostElement.getAttribute("title");
}
Тег Host аналогичен последнемувизуализированный тег proj-slider
. Когда вы сохраняете его как переменную, вы можете получить доступ к атрибутам тега. Возможно, вам придется использовать другой жизненный цикл, но концепция работает. Кстати, если зависит от выбранного вами крючка.