小编Mat*_*oMK的帖子

Typescript 和 React 与文件上传(打字)

我刚刚开始使用 TypeScript,所以请记住。我正在尝试在 React/TS 中实现一个简单的文件上传。一般来说,我认为我不理解如何初始化对象(例如在 useState 中)并正确处理可能性。例如,考虑以下代码,当用户单击“上传”按钮时,我正在运行一个函数,并且我尝试从状态读取文件并将其放入 formData 以将其发送到我的 api 端点):


const [fileSelected, setFileSelected] = React.useState<File>() // also tried <string | Blob>

const handleImageChange = function (e: React.ChangeEvent<HTMLInputElement>) {
    const fileList = e.target.files;

    if (!fileList) return;
    
    setFileSelected(fileList[0]);
  };

   const uploadFile = function (e: React.MouseEvent<HTMLSpanElement, MouseEvent>) {
    const formData = new FormData();
    formData.append("image", fileSelected, fileSelected.name);

     // line above ^ gives me the error below
  };
}
Run Code Online (Sandbox Code Playgroud)

'string | 类型的参数 斑点| undefined' 不可分配给类型为 'string | 的参数 布洛布。类型“undefined”不可分配给类型“string |” 斑点'.ts(2345)

你应该如何在 useState 中初始化你的对象?如果你不初始化,就像这里一样,你是否必须不断检查 null …

file-upload typescript reactjs use-state

15
推荐指数
1
解决办法
6万
查看次数

反应路由器使用历史。History.push 更改 url 但不加载组件

我想要一个简单的按钮,单击该按钮时会将用户重定向到我的 Index.tsx 文件中定义的路由。

单击按钮时,url 栏正确更改为“/dashboard”,但是我的组件(只是一个 h1)没有出现。如果我在那时重新加载 chrome,它将出现。

这是我的代码(Index.tsx):

import React from "react";
import ReactDOM from "react-dom";
import App from "./App";
import { Route, Switch } from "react-router-dom";
import { Router } from "react-router";
import { createBrowserHistory } from "history";
import Dashboard from "./components/Dashboard";

const appHistory = createBrowserHistory();

ReactDOM.render(
  <React.StrictMode>
    <Router history={appHistory}>
      <Switch>
        <Route exact path="/" component={App} />
        <Route path="/dashboard" component={Dashboard} />
      </Switch>
    </Router>
  </React.StrictMode>,
   document.getElementById("root")
  );
Run Code Online (Sandbox Code Playgroud)

这是我登录表单的开始(上面的第一条路线,App,呈现它)。(登录.tsx):

 import React, { useState } from "react";
 import {Button} from "@material-ui/core";
 import { …
Run Code Online (Sandbox Code Playgroud)

javascript typescript reactjs react-router material-ui

3
推荐指数
1
解决办法
2669
查看次数

如何从c#中的日期计算一天的开始和结束

我的 c# 程序中有一个日期,如下所示:“01/15/2015”,我需要将其转换为这样的字符串:“2015-01-15T00:00:00Z”(即日)。我正在调用需要该格式的第 3 方 api。

然后我需要取相同的日期并将其转换为:“2015-01-15T23:59:59Z”(即给定的一天结束)。

这是我所拥有的,它似乎基于我所做的有限测试工作,但我想知道这是否容易出错,或者是否有更好的方法来实现这一点。我以前没有处理过这种格式的日期,所以我想我会问那些有更多经验的人。T23:59:59Z 会是我服务器所在时区的一天结束吗?

程序示例:

    class Program
    {
        static void Main(string[] args)
        {
            Search("01/15/2015");
        }

         private static void Search(string date) 
        {
            //produce this:                                    
            //string startOfDay = "2015-01-15T00:00:00Z";                        
            //string endOfDay = "2015-01-15T23:59:59Z";

            DateTime temp1 = DateTime.Parse(date);
            string startOfDay = temp1.ToString("yyyy-MM-ddTHH:mm:ssK") + "Z";

            DateTime temp2 = DateTime.Parse(date);
            string endOfDay = temp2.ToString("yyyy-MM-ddT") + "23:59:59Z";
        }
    }
Run Code Online (Sandbox Code Playgroud)

c# datetime date

2
推荐指数
1
解决办法
4251
查看次数