Я отображаю список элементов, и у пользователя есть возможность добавить элемент в избранное.
Моя проблема в том, что я фиксирую только одно избранное состояние, таким образом, по нажатию одной кнопки,все кнопки элементов (красное сердце внизу) меняют цвет.
Я пытаюсь найти лучший способ справиться с переключениемизбранное.
Вот код кнопки и соответствующий обработчик щелчка:
<Table.Cell textAlign="center">
<Button
onClick={() => addFavorite(card, props.loggedUser)}
bordered
color={favorite ? "google plus" : "twitter"}
icon={favorite ? "heart" : "heart outline"}
/>
</Table.Cell>
const addFavorite = (card, user) => {
console.log("CARD + USER ON CLICK", card, user);
props.updateUser(card, user);
setFavorite(!favorite);
};
При нажатии я отправляю избранное в массив избранных данных пользователя в базе данных, и это успешно работает. (хотя я пока не обрабатываю удаление).
Я также устанавливаю состояние, как показано выше с помощью вызова setFavorite, однако это просто отслеживание одного универсального состояния «избранное», а не состояния «избранное» для каждого. item.
const [favorite, setFavorite] = useState("false");
Что было бы лучшим способом сделать это. Должен ли я добавлять состояние, в котором хранятся все избранное?
У меня есть доступное хранилище / состояние, называемое loggedUser, которое содержит всю информацию пользователя и избранные элементы. Должен ли я провести проверку против этого, может быть?
Спасибо за любую помощь по этому вопросу.