使用axios发出get请求时获取空数组

sxissh06  于 2023-01-13  发布在  iOS
关注(0)|答案(1)|浏览(231)

嗨:)我正在尝试从我的API中获取一个数字数组,它会返回如下内容:[{"numbers":[9,7,56,58,48,18],"gameId":1},{"numbers":[3,8,10,60,35,5],"gameId":2},{"numbers":[39,24,33,26,48,55],
我使用的是axios,每次我发出请求时都会发生这样的情况:[] length: 0 [[Prototype]]: Array(0)
这是我的代码:

const[game,setGame]= React.useState([]);
var[myGameNumbers, setMyGameNumbers]=React.useState([]);

React.useEffect(()=>{
    axios.get("http://localhost:8080/games/game12").then((response)=>{
     setGame(response.data);
    });
  }, []);
  if (!game) return null;

function mappingNumbers(){
    game.map((game) => (
        setMyGameNumbers==game
    ));
    if(!myGameNumbers) return null; else console.log(myGameNumbers);
}

这是触发功能的按钮:

<a href="#" className="button" onClick={mappingNumbers()}>
     <p className="bttn-p">GERAR NÚMEROS</p>
 </a>

我正在寻找一种方法来携带我的数组编号,就像这样:[9,7,56,58,48,18]每次我点击按钮。如果有人知道如何帮助我会很感激:D
这是我完整的代码,如果有什么我遗漏了:https://github.com/vitoriaacarvalho/jogando-na-mega-sena/tree/main/front/jogando-na-mega

vmjh9lq9

vmjh9lq91#

mappingNumbers中,您Mapgame,并根据setMyGameNumbers函数检查==,该函数将不起作用。
您还要检查myGameNumbers是否不存在,但它将始终存在,因为初始值是一个空数组[],这就是console.log记录空数组的原因。

...

if (!game) return null;

// will log everytime when a state gets updated
// and if the above statement is false
console.log("myGameNumbers", myGameNumbers);

function mappingNumbers() {
  if (game.length < 1) return null;
  setMyGameNumbers(game);
}

已使用正确语法更新onClick

<a href="#" className="button" onClick={() => mappingNumbers()}>
  <p className="bttn-p">GERAR NÚMEROS</p>
</a>

相关问题