Я создаю приложение, и частью этого приложения является то, что оно позволяет людям добавлять в избранное определенные элементы. Они просто щелкают значок сердца SVG, и он становится красным, и он сохраняется в «избранном» в состоянии и он отправляется в базу данных (MySQL). Если они снова щелкают по значку, он становится серым, удаляет его из состояния и запускает другую выборку в базу данных, чтобы удалить этот элемент.
Я пытался встроить это в моего создателя действий, но я не могу заставить их обоих работать (то есть, я не могу заставить его отправить состояние и в базу данных). Однако я сделал так, чтобы он функционировал идеально для государственной части. Я помещаю это ниже:
export const toggleFavorite = name => (dispatch, getState) => {
const { searchResults, favorites } = getState()
const currentSelection = filter(
selection => selection.name === name,
searchResults
)
const newFavorite = contains(currentSelection, favorites)
? reject(equals(currentSelection), favorites)
: append(currentSelection, favorites)
dispatch({
type: SET_FAVORITE,
payload: newFavorite
})
}
Итак, мой вопрос таков: где и как я могу поместить свои выборки в бэкэнд, чтобы разрешить вставку и удаление? Это была моя последняя неудачная попытка:
export const toggleFavorite = name => async (dispatch, getState) => {
const { searchResults, favorites } = getState()
const currentSelection = filter(
selection => selection.name === name,
searchResults
)
const newFavorite = contains(currentSelection, favorites)
? reject(equals(currentSelection), favorites)
await fetch(`http://localhost:5000/deletefavorite?user_id=1&selection_id=${currentSelection}`)
: append(currentSelection, favorites)
await fetch(`http://localhost:5000/addfavorite?user_id=1&selection_id=${currentSelection}`)
dispatch({
type: SET_FAVORITE,
payload: newFavorite
})
}
Заранее спасибо!