У меня есть разные ингредиенты (водка, джин, виски ...) файлы json в фиктивной папке.
У меня есть IngredientList.js, где я выбираю один ингредиент и передаю его
IngredientSearch.js
IngredientSearch.js получает соответствующий json-файл на основе имени ингредиента, а затем я устанавливаю состояние componentRes в res.data.drinks
Проблема, с которой я сталкиваюсь, заключается в том, что когда я печатаю console.log (newVals) ->, консоль записывает массивы из json бесконечно . Похоже, я что-то бесконечно повторяю.
Что не так с моей настройкой?
IngredientSearch.js:
import React, { Component } from 'react';
import axios from 'axios';
class IngredientSearch extends Component {
constructor() {
super();
this.state = {
ingredientRes: []
};
}
componentDidUpdate(prevProps) {
let ingredient = this.props.ingredient; //for example: vodka
this.getIngredient_drinks(ingredient);
}
getIngredient_drinks = (ingredient) => {
if(ingredient !== null) {
axios.get(`../dummy/${ingredient}.json`)
.then((res)=>{
let newVals = [];
newVals.push(res.data.drinks);
//console.log(newVals); // keeps relogging the arrays
this.setState({ ingredientRes: newVals });
}).catch((err)=>{
console.log(err);
})
}
}
render() {
return (
<div>
IngredientSearch Results
I want to map the ingredientRes here
</div>
)
}
}
export default IngredientSearch;