微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何在 foreach 内的钩子中更新数组状态

如何解决如何在 foreach 内的钩子中更新数组状态

我想在 foreach 中更新我的状态,但是当我检查时,它只保留最后一个而不保留以前的数据。

import './App.css';
import Card from "./Card"
import Books from "./Books"
import { useEffect,useState } from 'react';
import axios from "axios"
import BooksInfo from './Books';
function App() {
  const [bookInfo,setBookInfo] = useState([])
  useEffect( ()=>{
    let bname = ""
    let bauthor = ""
    let bcover = 0
    async function getInfo(){
        let results = Promise.all(BooksInfo.map(book=>{
          let result = axios.get(`https://openlibrary.org/search.json?q=${book}`)
          return result
        }))
        ;(await results).forEach(result=>{
          console.log(result)
            bname= result.data.docs[0].title_suggest
            bauthor= result.data.docs[0].author_name[0]
            bcover= result.data.docs[0].cover_i
            setBookInfo([...bookInfo,{ name:bname,author:bauthor,cover:bcover }]);
            console.log(bookInfo)
        })
    }

    getInfo()
  },[])  

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。