Фильтр с несколькими флажками и получением данных с помощью ReactJavascript

Форум по Javascript
Ответить Пред. темаСлед. тема
Anonymous
 Фильтр с несколькими флажками и получением данных с помощью React

Сообщение Anonymous »

Я пытаюсь реализовать фильтр с флажками, у меня есть мои данные в файле JSON.
Я получаю свои данные из json
это выглядит так: < /p>

Код: Выделить всё

  "subjects": [
{
"año_cuatri": "1° 1°",
"codigo": "1.1.1",
"nombre": "Técnicas de Programación",
"estado": "Promocionada",
"año_cursada": "2024 2°C",
"nota": 8,
"tiene_apuntes": true,
"link_apuntes": "111_tecnicas_de_programacion"
},
...
]}
< /code>
Я пытаюсь сделать его, и все в порядке, но когда я реализую фильтры с флажками, у меня возникают проблемы. Я не могу отфильтровать данные и повторно заполнить данные фильтра.
Вы не могли бы помочь мне?const Materias_List = () => {
const [dataApi, setDataApi] = useState([])

const [estadoChecked, setEstadoChecked] = useState({
materia_promocionada: false,
materia_pendiente: false,
materia_cursando: false,
materia_tiene_apuntes: false,
})

let api_subjects = [];
let api_subjects_filtered = [];

const fetchData = async () => {
try {
api_subjects = await degree_in_software_development.subjects
setDataApi(api_subjects)
}
catch (e) {
console.log("Error al consumir API", e);
}
finally {
console.log("FINALLY api_subjects", api_subjects);
console.log("FINALLY dataApi", dataApi);
console.log("Finalizó la carga");
}
}

const handleOnChange = async (e) => {
console.log("handleOnChange", e); // e: SyntheticBaseEvent {} > target: input#materia_cursando > checked: true||false

console.log("estadoChecked", estadoChecked);
setEstadoChecked({...estadoChecked, [e.target.name]: e.target.checked })
console.log("estadoChecked", estadoChecked);
console.log("e.target.checked", e.target.checked);
console.log("e.target.value", e.target.value);
console.log("e.target.name", e.target.name);
}

useEffect(() => {
fetchData()
console.log("useEffect", api_subjects);
console.log("useEffect dataApi", dataApi);
}, [])

return (


Filtrar por:


Promocionada




Pendiente




Cursando




Tiene apuntes


[list]
{
dataApi.map((subject) =>  {
return (


{subject.estado}
[h4]{subject.nombre}[/h4]
{
(!(subject.tiene_apuntes))
?

Código: {subject.codigo}

: ((subject.tiene_apuntes) && (subject.link_apuntes))
?

Código: {subject.codigo}

[url={`${basePath}${subject.link_apuntes}`} target=]
📚 Apuntes
[/url]


: null
}


)
})}
[/list]


)
}





const Materias_List = () => {
const [dataApi, setDataApi] = useState([])

const [estadoChecked, setEstadoChecked] = useState({
materia_promocionada: false,
materia_pendiente: false,
materia_cursando: false,
materia_tiene_apuntes: false,
})

let api_subjects = [];
let api_subjects_filtered = [];

const fetchData = async () => {
try {
api_subjects = await degree_in_software_development.subjects
setDataApi(api_subjects)
}
catch (e) {
console.log("Error al consumir API", e);
}
finally {
console.log("FINALLY api_subjects", api_subjects);
console.log("FINALLY dataApi", dataApi);
console.log("Finalizó la carga");
}
}

const handleOnChange = async (e) => {
console.log("handleOnChange", e); // e: SyntheticBaseEvent {} > target: input#materia_cursando > checked: true||false

console.log("estadoChecked", estadoChecked);
setEstadoChecked({...estadoChecked, [e.target.name]: e.target.checked })
console.log("estadoChecked", estadoChecked);
console.log("e.target.checked", e.target.checked);
console.log("e.target.value", e.target.value);
console.log("e.target.name", e.target.name);
}

useEffect(() =>  {
fetchData()
console.log("useEffect", api_subjects);
console.log("useEffect dataApi", dataApi);
}, [])

return (


Filtrar por:


Promocionada




Pendiente




Cursando




Tiene apuntes


[list]
{
dataApi.map((subject) => {
return (


{subject.estado}
[h4]{subject.nombre}[/h4]
{
(!(subject.tiene_apuntes))
?

Código: {subject.codigo}

: ((subject.tiene_apuntes) &&  (subject.link_apuntes))
?

Código: {subject.codigo}

[url={`${basePath}${subject.link_apuntes}`} target=]
📚 Apuntes
[/url]


: null
}


)
})}
[/list]


)
}
Спасибо за ваше время!

Подробнее здесь: https://stackoverflow.com/questions/796 ... with-react
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Фильтр с несколькими флажками и получением данных с помощью React
    Anonymous » » в форуме Javascript
    0 Ответы
    4 Просмотры
    Последнее сообщение Anonymous
  • Массив с несколькими флажками PHP
    Anonymous » » в форуме Php
    0 Ответы
    18 Просмотры
    Последнее сообщение Anonymous
  • Управляйте отображением Div с несколькими флажками
    Anonymous » » в форуме Html
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous
  • Управляйте отображением Div с несколькими флажками
    Anonymous » » в форуме CSS
    0 Ответы
    11 Просмотры
    Последнее сообщение Anonymous
  • Управляйте отображением Div с несколькими флажками
    Anonymous » » в форуме Javascript
    0 Ответы
    7 Просмотры
    Последнее сообщение Anonymous

Вернуться в «Javascript»