如何解决Elm create-elm-app 错误:初始化时给 Elm 程序的标志有问题 Json.Decode.oneOf 以以下两种方式失败
我正在开发一个 elm 应用程序,当我尝试将 <q-form class="q-gutter-md">
<q-list>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Tên thiết bị</q-item-label>
<q-input
dense
outlined
v-model="device.device_name"
label="Name"
/>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Loại thiết bị</q-item-label>
<q-select
outlined
v-model="option_1"
:options="options_type"
label="Type"
/>
</q-item-section>
</q-item>
<q-item>
<q-item-section>
<q-item-label class="q-pb-xs">Thời gian an toàn</q-item-label>
<q-input
dense
outlined
v-model="device.safe_time"
label="Time"
/>
</q-item-section>
</q-item>
</q-list>
<q-card-actions align="right" class="text-teal">
<q-btn
label="ADD"
color="primary"
@click="addData"
type="submit"
v-close-popup
/>
</q-card-actions>
</q-form>
更改为除 Model
以外的任何内容时,我收到错误
{}
解决方法
错误是因为 init
期望 Maybe Model
但在 Ellie 的 HTML 部分中,您没有传入标志。
有两个选项,您可以处理标志,或者删除标志。
继续解析标志: 您需要将 Elm.Main.init({ node: document.querySelector('main') }) 更改为
var app = Elm.Main.init({
node: document.querySelector('main'),flags: <some value>
});
通常也建议将您的标志更改为 Json.Decode.Value 并手动对其进行解码 所以你的 init 会变成
init : Value -> ( Model,Cmd Msg )
init flags =
case Json.Decode.decodeValue flagDecoder flags of
Ok decodedFlags -> ...
Err err -> ...
这样您就可以处理无效或丢失的标志。
移除标志解析
我们常用的单位类型是()
。
所以你的主要变成了
main : Program () Model Msg
和
init 变成
init : () -> ( Model,Cmd Msg )
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。