Ввод не очищен при рендеринге - PullRequest
0 голосов
/ 25 апреля 2019

При добавлении нового элемента ввода перед другим, который уже содержит текст, введенный пользователем, текст не удаляется из элемента. Нужно ли вручную очищать входы при использовании lit-html?

https://jsfiddle.net/9mqL6shy/2/

import {html, render} from 'https://unpkg.com/lit-html?module';

class Person {name = ""}
const persons = [new Person]
const target = document.createElement('div')


const personTemplate = (person) => html`<div><input type="text" @input="${e => person.name = e.target.value}" .value="${person.name}"></div>`
const myTemplate = (persons) => html`${persons.map(person => personTemplate(person))}`;
render(myTemplate(persons), target);

const button = document.createElement("button")
button.textContent = "press"
button.addEventListener('click', () => {
  persons.unshift(new Person)
  render(myTemplate(persons), target);
})

document.body.appendChild(button)
document.body.appendChild(target)

При вводе текста в поле ввода и последующем нажатии кнопки я ожидаю, что текст на вводе будет очищен.

...