我想使用Fable-Elmish和React Helpers上傳文件。但是,我無法解決如何在選擇文件時將表單事件轉換爲可以使用Fetch發送到服務器的內容。這是視圖:使用Fable-Elmish將React.FormEvent轉換爲BodyInit
R.input [
ClassName "input-control"
Type "file"
OnChange (fun x -> FileUploaded x.target |> dispatch)
] []
我更新功能的相應部分:
| FileUploaded file ->
model, Cmd.ofPromise postCsv file FetchSuccess FetchFailure
和函數調用與API獲取:
let postData input =
let formData = FormData.Create()
formData.append("file.csv", input?files)
let defaultProps =
[ RequestProperties.Method HttpMethod.POST
; RequestProperties.Body (formData |> unbox)]
promise {
return! Fable.PowerPack.Fetch.fetch ("/api/data") defaultProps
}
我如何可以轉換React.FormEvent進入需要獲取的BodyInit?
我已更新問題以包含我的最新代碼,並考慮到您的建議。這實際上使發佈請求,但文件不包括在內。請求有效載荷如下所示:------ WebKitFormBoundaryAkHYH5XIH8vT8kea Content-Disposition:form-data; name =「file.csv」 [object FileList] ------ WebKitFormBoundaryAkHYH5XIH8vT8kea-- –
請在公用文件夾中搜索您的包併發布正在生成的代碼。另外如果你可以請發佈一個小型的repro項目,包括服務器;我們可以使用它來解決或修補Powerpack中的讀取聲明。 –
repro在這裏:https://github.com/danoleary/FableFileUploadRepro –