2017-04-12 12 views
2

ファイルを私のFable-Elmishにアップロードして、処理のためにサーバーに送信できるようにしたい。しかし、私はこれをカバーするためのドキュメンテーション/サンプルを見つけることができません。これは私の更新機能である: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

FileUploadedメッセージをignoreに渡しています。これはその名前のとおりです。引数を無視して何もしません。そのメッセージは実際にはどこにも行きません。

Fable-Elmishでは、ビュー関数はdispatchという引数をとります。これはメッセージを受け取り、それをメッセージキューに入れます(後でupdateがメッセージを受け取る)。詳細については、the TodoMVC sample、特にonEnterviewModelの機能を参照してください。

基本的には、OnChange (fun x -> FileUploaded |> ignore)行はOnChange (fun x -> FileUploaded |> dispatch)であったはずです。

関連する問題