if (!canvas) {
return;
}
const textbox = new fabric.Textbox("Start writing...", {
width: 300,
top: 10,
left: 10,
fill: "white",
});
canvas.add(textbox);
canvas.renderAll();
canvas.on("text:changed", e => {
if (!canvas) {
return;
}
const { target } = e;
const { text } = target as fabric.Textbox;
console.log("text", text);
});
У меня есть вышеуказанный код в одном из моих реактивных компонентов. При нажатии кнопки запускается приведенный выше код.
В какой-то другой части кода я обновляю текстовое поле, выполняя textbox.text = 'new Text';
. new Text
- это текст, динамически создаваемый пользователем.
Проблема в том, что когда пользователь обновляет текстовое поле в следующий раз, скажем, пользователь вводит букву s
, я ожидаю text
из const { text } = target as fabric.Textbox
равный new Texts
. Тем не менее, я получаю s
, просто одну букву, которую пользователь набрал в следующем цикле.
Кто-нибудь знает, что происходит? Я подозревал, что это проблема с областью действия, но не могу ее решить.
Спасибо.