Javascript 如何不丢失值;在React中的数组?
我需要在react上安装动态“select”,但我遇到了一个问题 我正在使用“for”来调用API,但是在执行“for”时,我会丢失以前的值 如何保持这些值 我试图这样做,但它生成了一个无限循环:Javascript 如何不丢失值;在React中的数组?,javascript,reactjs,select,infinite-loop,Javascript,Reactjs,Select,Infinite Loop,我需要在react上安装动态“select”,但我遇到了一个问题 我正在使用“for”来调用API,但是在执行“for”时,我会丢失以前的值 如何保持这些值 我试图这样做,但它生成了一个无限循环: const Form = (props) => { const [makes, setMakes] = useState([]); const [models, setModels] = useState([]); useEffect(() => { api.get(
const Form = (props) => {
const [makes, setMakes] = useState([]);
const [models, setModels] = useState([]);
useEffect(() => {
api.get("Make").then((response) => {
setMakes([...response.data]);
});
}, []);
async function handleModels() {
for (let i = 0; i < makes.length; i++) {
const response = await api.get(`Model?MakeID=${makes[i]["ID"]}`);
const model = response.data;
setModels([...models, model]);
}
}
if (makes.length) {
handleModels();
}
const Form=(道具)=>{
const[makes,setMakes]=useState([]);
const[models,setModels]=useState([]);
useffect(()=>{
api.get(“Make”)。然后((响应)=>{
setMakes([…response.data]);
});
}, []);
异步函数handleModels(){
for(设i=0;i
谢谢!您需要传递一个在当前状态下接受的函数:
setModels((models)=> [...models, model]);
或者更好,将结果推送到数组,然后只更新一次状态:
async function handleModels() {
let allModels = []
for (let i = 0; i < makes.length; i++) {
const response = await api.get(`Model?MakeID=${makes[i]["ID"]}`);
const model = response.data;
allModels.push(model);
}
setModels(allModels);
}
异步函数handleModels(){
让所有模型=[]
for(设i=0;i
见工作示例: