簡體   English   中英

將數據提取到 State

[英]Fetched Data to State

UserAPI.js這是我導出到Admin.js

     export const getAllEmailsFromConfirmedUsers = () => { Axios.get('http://localhost:8080/users/confirmedusers')
     .then(function (response) {
      console.log(response);
    })
    .catch(function (error) {
      console.log(error);
    });
  }

Admin.js - 我如何導入 API 調用。

import {getAllEmailsFromConfirmedUsers} from '../../shared/api/UserAPI'

Admin.js - 然后我在useEffect()中使用 function

  useEffect(() => {
    getAllEmailsFromConfirmedUsers();
  });

這是我的Admin.js文件中的 state。

  const [myState, setMyState] = useState([]);

這工作正常,我從獲取的 API 調用中得到一組值,但是
我的問題:從外部文件導入 Axios function 時,如何將檢索到的數組設置為我的狀態( setMyState )?

在您的 UserAPI 中執行以下操作:

export const getAllEmailsFromConfirmedUsers = () => { 
 return Axios.get('http://localhost:8080/users/confirmedusers')
  }

然后在您的管理員中:

useEffect(() => {
 getAllEmailsFromConfirmedUsers().then({
//Do Your update here

 }).catch(error=>{
  })

});

你可以給你的 api 打電話 function

export const getAllEmailsFromConfirmedUsers = (saveData) => { 
 Axios.get('http://localhost:8080/users/confirmedusers')
     .then(function (response) {
      if(response){
        saveData(response)
      }
    })
    .catch(function (error) {
      console.log(error);
    });
  }

並在您的組件中:

useEffect(() => {
  getAllEmailsFromConfirmedUsers(setMyState);
});

您正在獲取您的數據,但沒有在任何地方返回您的數據。 擺脫控制台日志並在您的 API 調用中添加return response

   export const getAllEmailsFromConfirmedUsers = () => { Axios.get('http://localhost:8080/users/confirmedusers')
     .then(response => response)
     .catch(err => err);
  }

接下來,您將在 useEffect 中進行異步調用,以便您可以以這種方式構造函數。 這會將您的響應存儲在一個變量中,您將能夠設置您的 state

const [myState, setMyState] = useState([]);

useEffect(() => {
    async function fetchMyData() {
        return await getAllEmailsFromConfirmedUsers();
    }

    let myEmails = fetchMyData()
    setMyState(myEmails)
}, [])

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM