我目前正在尝试在 svelte 中创建类似向导的一系列问题。为此,我使用了一个组件,该组件将问题作为参数并构建单选项目列表(简化):
<Question question="{{ activeQuestion }}"></Question>
在组件内部,以下代码构建了表单元素:
{{#each question.options as option}}
<li class="question-section__option">
<input type='radio' bind:group='selected' value='{{ option.value }}'>
<label>{{ option.label }}</label>
</li>
{{/each}}
在oncreate
我观察问题参数并初始化并尝试根据我商店的答案设置默认值:
oncreate() {
this.observe('question', question => {
const answers = this.store.get('answers');
if (answers[question.id]) {
this.set({
selected: answers[question.id]
});
}
})
},
selected
在组件的“问题”属性更改一次后,设置值停止工作。它是通过观察设置还是仅在常规 onclick 事件中设置似乎并不重要。
如果有人知道我做错了什么或指出我正确的方向,那就太好了!