【问题标题】:React Use state doesn't upload variabeReact Usestate 不上传变量
【发布时间】:2021-07-02 08:17:41
【问题描述】:

我正在尝试为我的网站创建上传系统,但遇到了问题。当我尝试使用反应状态加载我的文件信息时,我的变量图像不会更新。

const [titolo, setTitolo] = useState("")
const [image, setImage] = useState([])
const [descrizione, setDescrizione] = useState("")
const [prezzo, setPrezzo] = useState("")
const [quantita, setQuantita] = useState(0)

const fileSelectedHandler = event  => {
  console.log(event.target.files[0])
  setImage(event.target.files[0])
  console.log(image)
}

因此,当我在控制台记录 event.target.files[0] 时,它在我看来是这样的: Reults of console.log(event.target.files[0])

但是当我打印我的图像变量时,它看起来像这样: Result of console.log(image)

所以当我使用 axios 传递我的文件信息时,我没有任何信息。你能帮帮我吗?

【问题讨论】:

    标签: reactjs file-upload use-state


    【解决方案1】:

    由于 JavaScript 的异步特性,您不能期望 imagesetImage(...) 函数调用之后立即被控制台记录。您应该添加一个useEffect 挂钩,如下所示。

      React.useEffect(() => {
        console.log(image)
      }, [image]);
    

    【讨论】:

    • 只需调用Axios.post(...your parameters for file uplaod...) 而不是useEffect 挂钩内的console.log。
    • @Lume,如果这解决了您的问题,请将其标记为答案。谢谢!
    猜你喜欢
    • 1970-01-01
    • 2021-10-10
    • 1970-01-01
    • 2020-07-06
    • 2020-02-03
    • 1970-01-01
    • 1970-01-01
    • 2021-10-28
    • 2023-03-19
    相关资源
    最近更新 更多