Polymer 준비 및 요소가 올바르게 작동하는 방식을 이해하는 데 문제가 있기 때문에 필자는 작성 중입니다. Polymer 2.0을 사용하고 있습니다.Polymer - DOM-IF의 항목이 첫 번째 호출에서 null을 반환 함
<template is="dom-if" if="{{isExpanded}}">
<div id="drop-down-list" >
<template is="dom-repeat" items="{{employees}}">
<button on-click="onDropDownItemClick" class="button-style items">{{item}}</button>
</template>
</div>
</template>
isExpandend
이 false
입니다 시작에 내 템플릿에서
나는이 코드를 가지고있다. 따라서 버튼이 숨겨져 있거나 생성되지 않았습니까?
그런 다음 몇 가지 기능에 나는true
에
isExpandend
전환 및 그 방법에 약간의 스타일을 업데이트 할 :
var items = this.shadowRoot.querySelectorAll('.items');
for(var i=0; i< items.length; i++){
items[i].style.height = itemHeight;
}
문제는 -이 솔루션은이 기능에 초 이상 항목으로 작동합니다. 그래서이 함수를 처음 호출하면 항목은 null이고 아무 것도 변경되지 않지만 두 번째 호출시 더 많은 항목 = [], 코드가 올바르게 작동합니다.
이 버그를 복구하려면 어떻게해야합니까?
"async"로 뭔가를해야합니까? 스택에서 찾을 수 있지만 사용법을 모릅니다.
이것은 Polymer의 올바른 동작이지만 도움이 될 수 있도록 구성 요소 소품과 'isExpanded'를 업데이트하는 기능을 공유하십시오. – Kyle