Как использовать useState
ловушку для обновления массива в массиве объектов, который зависит от индекса массива?
данные конечной цели:
foodData = [
{
foodId: 'fdsafsdafsa',
fruitsArray: ['banana', 'orange']
},
{
foodId: '234243fdsfdsafsasdf343432afsdafsa',
fruitsArray: ['apple']
},
{
foodId: 'fdsafsdafsa',
fruitsArray: ['strawberry', 'orange']
},
]
У меня есть функция с аргументами (fruits, fruitIndex, foodIndex, foodId)
const logFruitsIntoFoodData = (fruits, fruitIndex, foodIndex, foodId) => {
// update state here...
const foodToUpdate = {...foodData};
foodToUpdate[foodIndex] = {
...foodData[foodIndex],
// This gets overwritten,
// how do I continue to add or
// update the fruit based on fruit index?
['fruitsArray']: fruits,
};
}
Я пытаюсь обновить / добавить фрукты в fruitsArray , поэтому при вызове функции она вставит нужные фрукты в foodData , или он обновит его, в зависимости от значения fruitIndex .
Следует ли использовать два отдельных useState
:
const [foodData, setFoodData]= useState([]);
const [fruitsArray, setFruitsArray] = useState([]);
где я должен сначала получить массив фруктов, а затем добавить его в foodData, или я могу просто использовать 1 useState для работы со всем?