首页 文章

使用Fable-Elmish上传文件

提问于
浏览
3

我想将文件上传到我的Fable-Elmish,结束,然后我可以将它发送到服务器进行处理 . 但是,我找不到任何文件/样本来涵盖这一点 . 这是我的更新功能:

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, []

这是包含文件上传的视图功能的一部分:

R.input [
        Type "file"
        OnChange (fun x -> FileUploaded |> ignore)
    ] []

据我所知,这应该触发更新并打印出“文件上传!”到控制台,但没有发生任何事情 .

如果有人能指出我在这方面的正确方向那将是伟大的 .

1 回答

  • 2

    您正在将 FileUploaded 消息传递给 ignore ,这正如其名称所示:忽略其参数并且不执行任何操作 . 所以这个消息实际上不会去任何地方 .

    使用Fable-Elmish,您的视图函数接受一个名为 dispatch 的参数,该参数将接收消息并将其放入消息队列(以便 update 稍后将收到消息) . 有关详细信息,请查看the TodoMVC sample,尤其是 onEnterviewModel 函数 .

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

相关问题