1

我正在编写一个闪电网络组件,我必须将一个<datalist>元素分配给我的<input>元素list属性之一,以便绑定它们。

出于某种原因,这个 JS 行:

const streetsListId = this.template.querySelector('streetdatalist').id;

抛出这个 JS 错误信息:

无法读取 null 的属性“id”

网页组件 HTML:

<template>
    <div class="container">
        <input  id="inputstreet"
                name="inputstreet"
                type="text"
                list="streetdatalist"
                label="Search"
                onkeydown={onStreetChange}
                onblur={onStreetChange} />

        <datalist id="streetdatalist">
             <template for:each={streets} for:item='street'>
                 <option key={city.cityCode}>{city.cityName}</option>
             </template>
        </datalist>
    </div>
</template>

网页组件 JS:

renderedCallback() {
    if (this.initialized) {
        return;
    }
    this.initialized = true;

    const streetsListId = this.template.querySelector('streetdatalist').id;
    this.template.querySelector('inputstreet').setAttribute('list', streetsListId);
}
4

1 回答 1

2

通过更改 querySelector 来解决它'[data-id=

const citiesListId = this.template.querySelector('[data-id="streetdatalist"]').id;
于 2019-12-17T08:40:46.297 回答