Как удалить элемент из массива, если на него щелкнули (и если он уже был ранее добавлен в массив)?
У меня есть прототип Framer X (React), который собирает информацию о ставках на футболпо сравнению с API, вот так:
const API = "https://api.myjson.com/bins/i461t"
// [1]
export const data = Data({
matches: [],
chosenBets: [],
})
// [2]
const fetchData = async (endpoint, callback) => {
const response = await fetch(endpoint)
const json = await response.json()
data.matches = json
}
У каждого матча есть шансы, связанные с ним: для команды хозяев и гостей, а также ничья:
Когда пользователь выбирает нечетное, оно выделяется и добавляется в массив chosenBets
:
export function PopulateMatches(): Override {
return {
matches: data.matches,
onClick(obj, index) {
data.chosenBets.splice(index, 1, obj)
console.log(data.chosenBets, "data.chosenBets")
},
}
}
Когда я снова нажимаю на ту же нечетную, она отменяется (красный фон удаляется с кнопки, но не с объекта данных chosenBets
)
Как удалить элемент из объекта данных chosenBets
?
Код можно посмотреть здесь: https://github.com/A7DC/FramerXTEST1
Редактировать: полный код
import * as React from "react"
import { Data, Override, Stack, Frame } from "framer"
import { MatchCard } from "./canvas"
//// Pulling down mathches
const API = "https://api.myjson.com/bins/i461t"
// [1]
export const data = Data({
matches: [],
chosenBets: [],
})
// [2]
const fetchData = async (endpoint, callback) => {
const response = await fetch(endpoint)
const json = await response.json()
data.matches = json
}
// App.tsx
export function PopulateMatches(): Override {
return {
matches: data.matches,
onClick(obj, index) {
data.chosenBets.splice(index, 1, obj)
console.log(data.chosenBets, "data.chosenBets")
},
}
}
// [4]
fetchData(API, {})