我是 ReactJS 的初学者,正在尝试创建一个简单的测验应用程序。我想要做的可以在selectionQues()函数中看到。
import React,{useState,useEffect} from 'react';
import './App.css';
import Question from './components/Question';
function App() {
const [ques, setques] = useState([]);
const [currentQues, setcurrentQues] = useState([]);
//importing ques using api
useEffect(() =>{
fetch('https://opentdb.com/api.php?amount=20&category=18&difficulty=medium&type=multiple')
.then((res)=> res.json())
.then((question) => {
setques(question.results);
});
},[setques])
//selecting 5 ques at random for our quiz
const selectingQues = () => {
let curr=[];
let qlen=ques.length;
for(let i=0;i<5;i++){
let selector= Math.floor(Math.random()*qlen);
curr[i]=ques[selector];
}
setcurrentQues(curr);
// console.log(ques);
}
return (
<div className="App">
<Question currentQues={currentQues}/>
</div>
);
}
export default App;
现在我想做的是调用此 SelectingQues() 而不显式使用 onClick 监听器或类似的东西。使用 useEffect 可以实现这一点吗?但我希望它在调用第一个 useEffect 后执行。
问题组件未附加,因为它只是显示问题。
饮歌长啸
相关分类