我有一个带有输入字段的表单。当我键入 (keyup)Enter键时,必须清除这些字段之一。我知道我可以将此字段作为受控字段处理(意味着监听keyup并维护该字段的副本),或者使用双向绑定,但在我的用例中我不能做后者,我宁愿不做前者。因此,我的问题是,如何强制渲染 Svelte 组件?
通常,表单显示为<Component field="value" />,用户修改字段并单击Enter键,我想app.set(field, value)字段重置为value,即使在 Svelte 看来,该field属性没有改变。那可能吗?
我尝试不成功的转变在于更新Svelte 组件内的属性,希望当 时app.set(field, value),Svelte 将看到该field属性的两个不同值并更新组件。但这似乎不起作用:
<script>
const watchForEnter = ev => {
if (ev.keyCode === 13) {
ev.preventDefault();
const formData = new FormData(ev.target.closest("form"));
const tag = formData.get("tag");
dispatch({ [ADDED_TAG]: tag });
}
};
const updateCurrentTag = ev => {
currentTag = new FormData(ev.target.closest("form")).get("tag");
console.log(`currentTag!`, currentTag)
}
</script>
<form>
<fieldset class="form-group"> …Run Code Online (Sandbox Code Playgroud) svelte ×1