第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

React 開(kāi)發(fā)工具顯示數(shù)據(jù)狀態(tài),控制臺(tái)顯示為空

React 開(kāi)發(fā)工具顯示數(shù)據(jù)狀態(tài),控制臺(tái)顯示為空

qq_花開(kāi)花謝_0 2023-07-14 15:14:53
我的 React 應(yīng)用程序中的狀態(tài)遇到了一個(gè)奇怪的問(wèn)題。在此我使用一種狀態(tài)和一種 useEffect。狀態(tài)用于存儲(chǔ)從 jsonplaceholder 獲取的帖子。獲取并設(shè)置寫(xiě)入 useffect 內(nèi)的狀態(tài),并使用空數(shù)組作為依賴(lài)選項(xiàng)。我什至從 jsonplaceholder 檢索數(shù)據(jù),它沒(méi)有設(shè)置 usestate。它顯示空數(shù)組,這是初始值。有時(shí),當(dāng)我保存代碼時(shí)它會(huì)更新,但在刷新頁(yè)面后它會(huì)消失并且不會(huì)再次更新我什至嘗試了很多次但問(wèn)題是react-dev-tools顯示狀態(tài)更新值,這是所有帖子。但“console.log()”不顯示數(shù)據(jù)。告訴為什么 setposts() 方法似乎沒(méi)有設(shè)置狀態(tài),import React,{ useEffect,useState} from 'react'export default function Test() {    const [ posts, setposts] = useState([]);    useEffect(()=>{        fetch('https://jsonplaceholder.typicode.com/posts',{            method:'get',            }).then(result=>{            return result.json();        }).then((data)=>{            console.log(data);            setposts(data);                    console.log(posts);        })    },[])    return (        <div>                       </div>    )}
查看完整描述

3 回答

?
MM們

TA貢獻(xiàn)1886條經(jīng)驗(yàn) 獲得超2個(gè)贊

您的代碼是正確的,但狀態(tài)并未立即放置,因此當(dāng)您調(diào)用控制臺(tái)日志時(shí),該值尚未準(zhǔn)備好,但如果您在 html 中顯示該數(shù)據(jù),則這不會(huì)成為問(wèn)題


對(duì)您的代碼進(jìn)行了一些更改和少量組織


export default Test = {

  const [ posts, setposts] = useState([]);


  useEffect(()=>{

      fetch('https://jsonplaceholder.typicode.com/posts')

      .then(result => result.json())

      .then((data)=>{

        console.log(data); // Will be written because you are already at the end of the promisse

        setposts(data);      

        console.log(posts); // Will be empty cuz the async load of state

      });

  },[])


  return (

    <>          

      {posts.map(post => (

        <ul>

          <li key="{post.id}">{post.title}</li>

        </ul>

      ))}    

    </>

  )

}


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
呼如林

TA貢獻(xiàn)1798條經(jīng)驗(yàn) 獲得超3個(gè)贊

基本上,react 不會(huì)立即更改狀態(tài),

如果您想看到狀態(tài)確實(shí)發(fā)生了變化,請(qǐng)嘗試渲染帖子,例如(我知道,這是一個(gè)糟糕的例子):

...
return?(
????????<div>{JSON.stringify(posts)}</div>
????)


查看完整回答
反對(duì) 回復(fù) 2023-07-14
?
FFIVE

TA貢獻(xiàn)1797條經(jīng)驗(yàn) 獲得超6個(gè)贊

useState API 沒(méi)有像 React 類(lèi)中的 setState 那樣的回調(diào)。為了等待狀態(tài)更新完成,您所能做的就是使用 useEffect 掛鉤,如下所示


useEffect(()=>{


        fetch('https://jsonplaceholder.typicode.com/posts',{


            method:'get',

    

        }).then(result=>{

            return result.json();

        }).then((data)=>{

            console.log(data);

            setposts(data);

        

            console.log(posts);

        })


    },[data])


查看完整回答
反對(duì) 回復(fù) 2023-07-14
  • 3 回答
  • 0 關(guān)注
  • 244 瀏覽
慕課專(zhuān)欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢(xún)優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)