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