Ваадин 12: Установка innerHTML 2x на одно и то же значение не работает - PullRequest
0 голосов
/ 18 декабря 2018

это ожидаемое поведение?

Нажатие 2 раза на "set to 'foo'" - кнопка приведет к тому, что innerHTML станет пустым.

import java.util.Random;
import com.vaadin.flow.component.button.Button;
import com.vaadin.flow.component.html.Div;
import com.vaadin.flow.router.Route;

@Route("test2")
public class V_Test2 extends Div
{
  public V_Test2()
  {
    Div div = new Div();
    add(div);
    {
      Button button = new Button("set to 'foo'");
      button.addClickListener(e -> div.getElement().setProperty("innerHTML", "foo"));
      add(button);
    }
    {
      Button button = new Button("set random");
      button.addClickListener(e -> div.getElement().setProperty("innerHTML", "bar-" + new Random().nextInt()));
      add(button);
    }
    {
      Button button = new Button("set to null");
      button.addClickListener(e -> div.getElement().setProperty("innerHTML", null));
      add(button);
    }
  }
}

1 Ответ

0 голосов
/ 30 января 2019

Это известная ошибка: https://github.com/vaadin/flow/issues/4644. Вы можете обойти нарушенную логику, вместо этого используя JavaScript для установки значения innerHMTL.Это было бы что-то вроде div.getElement().executeJavaScript("this.innerHTML = $0", "foo");.

...