亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

通過 API 調用設置的狀態值有時不會顯示在頁面上(或表單組件上)

通過 API 調用設置的狀態值有時不會顯示在頁面上(或表單組件上)

楊__羊羊 2023-08-18 10:33:35
這就是我想做的:get test info from api > receieve test info > store it on an object "test" > set states "test_title" and "test_desc"> put both "test_name" and "test_desc" as values on my form從 api 獲取測試信息:useEffect(() => {    fetchTest()}, [])const [test, setTest] = useState({})const [test_name, setTestName] = useState("")const [test_desc, setTestDesc] = useState("")// Fetch Testconst fetchTest = () => {    let test_code = params.code    const url = ...url here...    axios.get(url)    .then(res => {        if (res.status == 200) {            setIsGettingData(false)            setTest(res.data)            // Set Test Name and Desc            setTestInfo()        }    })    .catch(err => {        console.log(err.response)    })}這用于更新從 api 調用接收數據后調用的test_nameand :test_desc// Set Test Infoconst setTestInfo = () => {    setTestName(test.name)    setTestDesc(test.desc)}我的表格:<form id="form_test">     <input type="text" value={test_name} onChange={e => setTestName(e.target.value)} className="form-control mb-2" placeholder="test name" />     <textarea className="form-control" value={test_desc} onChange={e => setTestDesc(e.target.value)} placeholder="test description"></textarea></form>問題是有時輸入顯示實際的test_name和test_desc,有時則不顯示。當我控制臺記錄它時,它有時會顯示實際值,有時會顯示未定義。當在頁面上正常顯示它時{test_name},就像 一樣,有時顯示,有時不顯示。我想這可能是因為api調用?就像有延遲或其他什么情況一樣,我猜 DOM 在保存或接收數據之前就已經渲染了所有內容?我不知道。對此有何建議?多謝!
查看完整描述

1 回答

?
翻翻過去那場雪

TA貢獻2065條經驗 獲得超14個贊

這里的問題是test尚未設置res.data


test info直接更新res.data_


const setTestInfo = (name, desc) => {

    if (name) {

        setTestName(name);

    } else {

        setTestName(test.name);

    }


    if (desc) {

        setTestDesc(desc)

    } else {

        setTestDesc(test.desc);

    }    

}

res.data并使用值從 api 調用它


setTestInfo(res.data.name, res.data.desc)


查看完整回答
反對 回復 2023-08-18
  • 1 回答
  • 0 關注
  • 162 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號