首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用Fable Elmish上传文件

使用Fable Elmish上传文件
EN

Stack Overflow用户
提问于 2017-04-12 22:30:16
回答 1查看 1.2K关注 0票数 5

我想上传一个文件到我的寓言-Elmish,结束,这样我可以把它发送到服务器进行处理。然而,我找不到任何文档/样本来涵盖这一点。这是我的更新功能:

代码语言:javascript
复制
let update msg model : Model * Cmd<Msg> =
    match msg with
    | QueryResults ->
        {model with results = None}, Cmd.ofPromise getData "" FetchSuccess FetchFailure
    | FetchSuccess data -> 
        { model with results = Some data }, []
    | FetchFailure ex ->
        Browser.console.log (unbox ex.Message)
        Browser.console.log "exception occured" |> ignore
        model, []
    | FileUploaded ->
        Browser.console.log "file selected!" |> ignore
        model, []

这是视图函数中包含文件上传的部分:

代码语言:javascript
复制
R.input [
        Type "file"
        OnChange (fun x -> FileUploaded |> ignore)
    ] []

据我所知,这应该触发更新,并打印出“文件上传!”到控制台,但什么都没发生。

如果有人能给我指明正确的方向,那就太好了。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-04-13 04:18:58

您正在将FileUploaded消息传递给ignore,它执行其名称所述的操作:忽略其参数,而不做任何操作。所以这条信息实际上不会传播任何地方。

使用Fable,您的视图函数接受一个名为dispatch的参数,这个函数将接收一条消息并将其放入消息队列(以便update在稍后的某个时间接收消息)。有关详细信息,请查看TodoMVC样本,特别是onEnterviewModel函数。

基本上,您的OnChange (fun x -> FileUploaded |> ignore)行应该是OnChange (fun x -> FileUploaded |> dispatch)

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43380657

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档