Я работаю над собственным приложением для реагирования.
В моем основном компоненте я использую перехватчик UseEffect, чтобы сохранить ответ базы данных в переменной «food». Затем я создам список с данными, содержащимися в этой переменной.
Вот моя ловушка:
const [ food, setFood ] = useState([]);
const [listData, setListData] = useState([]);
const load_food = async () => {
db.listProduct().then(row => setFood(row))
setListData(
Array(food.length)
.fill('')
.map((_, i) => ({ key: `${i}`, product: `${food[i].PRODUCTNAME}`,
date: `${food[i].DATE}`,
uri: `${food[i].IMAGEURL}`,
id: `${food[i].IDPRODUCT}`})))
};
useEffect( () => { load_food(food) }, [food] );
Но проблема в том, что эта ловушка вызывается бесконечно. Если я помещу в ловушку console.log ('test'), журнал будет бесконечным. Из-за этого мое приложение очень тормозит.
Из того, что я понял о подобной проблеме, я должен оставить пустой массив в моем хуке следующим образом:
useEffect( () => { load_food(food) }, [] );
список не инициализируется.
Не могу найти решение