我想使用 stencil 构建一个范围滑块。
范围滑块上方是一个h1
应该返回滑块的正确值的滑块。
我使用一个Listen-Event,它会监听是否range-slider
被点击(我也尝试过改变,但没有奏效)。如果单击它,handleChangeEvent
则执行。在这种方法中,我有我meinSlider
以前分配给的变量input type="range"
。在这个变量上,我使用addEventListener
,它监听“变化”,然后我使用document.querySelector
并选择我的span
元素,它应该给出正确的数字并将其分配给范围滑块的值:
document.querySelector(".regler-wertung span").innerHTML = this.value;
但是,它不起作用,如果我使用console.log
它,它会返回null
。
我想我无法访问 HTML-Element。
此外,我有一个错误:
TypeError:无法在 regler.changeEvent、regler.handleChangeEvent、HTMLElement.listenMeta.eventDisabled.plt.domApi.$addEventListener.ev读取属性“addEventListener”
我不是专业人士,对 Stencil 没有任何经验。
我非常感谢任何帮助。
不确定这是否重要,但我也在使用Electron,因为它是一个桌面应用程序。
这是我的 .tsx:
import { Component, Prop, Listen, } from '@stencil/core';
@Component({
tag: 'regler-wertung',
styleUrl: 'regler.css',
shadow: false
})
export class regler {
@Prop() regler: string;
@Prop() value: number;
meinSlider=document.querySelector('#myRange')
@Listen ('click', {capture: true})
handleChangeEvent(){
this.meinSlider.addEventListener("change", function(){
document.querySelector(".regler-wertung span").innerHTML = this.value;
})
}
render() {
return (
<div>
<h1 class="regler-wertung">gewichtete Punkte von 0-10: {this.regler} <span>0</span></h1>
<input type="range" id="myRange" class="slider" value="0" min="0" max="10" ></input>
</div>
)
}
}