Форум программистов, компьютерный форум, киберфорум
JavaScript: ReactJS
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.92/13: Рейтинг темы: голосов - 13, средняя оценка - 4.92
1 / 1 / 0
Регистрация: 19.04.2021
Сообщений: 44
1

React и Api: вывод элементов.

05.05.2021, 16:26. Показов 2318. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
У меня есть API, с помощью которого я вывожу продукты. У меня продукты в API разделены на категории. И у меня есть кнопки категорий к этим продуктам, но они повторяются. Помогите пожалуйста: как сделать чтобы показывались только те товары, на какую категорию я нажимаю по кнопке ?? Добра вам

Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import React, {useEffect, useState} from "react";
 
let Products = () => {
 
    let [array, setArray] = useState([]);
 
    let fetchData = async () => {
        let response = await fetch('https://fakestoreapi.com/products');
        let data = await response.json();
        setArray(data);
    }
 
    useEffect(() => {
        fetchData()
    },[])
 
    return(<div>
        {array.map(el => <button key={el.category}>{el.category}</button>)}
        <div>
            {array.map(el =>
                <div>
                    <div><img src={el.image}/></div>
                    <div>{el.title}</div>
                </div>)}
        </div>
    </div>)
}
 
export default Products;
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
05.05.2021, 16:26
Ответы с готовыми решениями:

Undefined API React
Добрый день! Разрабатываю простенькое crud приложение c интеграцией с готовым backend. Возникла...

React для Rest APi
Я учусь делать фуллстак приложение. Выбрал реакт. Допустим написал какой-то простейший Rest API....

React асинхронное выполнение запросов к API
Добрый день. Помогите разобраться Необходимо загрузить два набора данных с сервера, потом...

Возможно ли развернуть ASP.NET Core Web API + React JS на виртуальном хостинге?
Сейчас у меня VPS. А возможно ли развернуть на обычном виртуальном хостинге? И будет ли это проще?

4
Coding is art
Эксперт JS
536 / 420 / 153
Регистрация: 04.09.2013
Сообщений: 1,056
05.05.2021, 17:01 2
Javascript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
import React, {useEffect, useState} from "react";
 
let Products = () => {
 
    const [array, setArray] = useState([]);
    const [categories, setCategories] = useState([]);
    const [selectedCategory, setSelectedCategory] = useState(null);
 
    const fetchData = async () => {
        let response = await fetch('https://fakestoreapi.com/products');
        let data = await response.json();
        setCategories(Array.from(new Set(data.map(d => d.category))));
        setArray(data);
    }
 
    useEffect(() => {
        fetchData()
    },[]);
 
    return(<div>
        {categories.map(category => (
          <button key={category} onClick={() => setSelectedCategory(category)}>
            {category}
          </button>
        ))}
        <div>
            {array
             .filter(el => {
               if (selectedCategory) {
                 return selectedCategory === el.category;
               }
               return true;
             })
             .map(el =>
                <div>
                    <div><img src={el.image}/></div>
                    <div>{el.title}</div>
                </div>)}
        </div>
    </div>)
}
 
export default Products;
0
1 / 1 / 0
Регистрация: 19.04.2021
Сообщений: 44
05.05.2021, 18:16  [ТС] 3
@muxahuk1214, Большое тебе спасибо. Я прошу последнюю просьбу, можешь немножко объяснить код, а именно 12 строчку и с 29 по 32 строку, чтобы понять окончательно, я очень прошу. Еще раз большое спасибо)
0
Coding is art
Эксперт JS
536 / 420 / 153
Регистрация: 04.09.2013
Сообщений: 1,056
05.05.2021, 18:44 4
Лучший ответ Сообщение было отмечено Halland как решение

Решение

Javascript
1
Array.from(new Set(data.map(d => d.category)))
это "типичный" или "один из" способов как сделать массив уникальных значений..

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
data.map(d => d.category)
создаёт массив из категорий, аля ['cat1', 'cat2', 'cat1']

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
new Set(data.map(d => d.category))
создаёт новый элемент класса Set, одно из "свойств" сета - он не дублирует значения, т.е. после этого шага в сете будут уникальные значения 'cat1' и 'cat2'

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
Array.from(new Set(data.map(d => d.category)))
ну и в конце - создаём массив из сета.. Array.from как аргумент принимает любой итерируемый объект и создаёт из него массив.. т.е. получаем ['cat1', 'cat2']

Цитата Сообщение от muxahuk1214 Посмотреть сообщение
.filter(el => {
               if (selectedCategory) {
                 return selectedCategory === el.category;
               }
               return true;
             })
что же касаемо этого - см. https://developer.mozilla.org/... ray/filter

в частности, если у нас есть selectedCategory и значение truethy, то сравниваем его с категорией элемента (если равны, то элемент остаётся, если нет - элемент убирается), ну и если selectedCategory не задано - то ничего не убираем из массива...
1
1 / 1 / 0
Регистрация: 19.04.2021
Сообщений: 44
05.05.2021, 20:52  [ТС] 5
muxahuk1214, Большое спасибо))
0
05.05.2021, 20:52
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
05.05.2021, 20:52
Помогаю со студенческими работами здесь

Отсортированный вывод элементов Hashtable с использованием Stream API
Как сделать отсортированный вывод элементов коллекции с помощью Stream API (по заданию надо)?...

React и вывод елементов
Я беру ресурс и вывожу данные через fetch. Дело в том, что у меня выводятся сразу все элементы с...

JS React вывод массива списком
В чем косяк? &lt;script type=&quot;text/babel&quot;&gt; const name = ; class Test extends React.Component...

React JS. Вывод с html тегами
Имею небольшой скрипт на реакте. с помощью ajax получаю данные (текст), которые содержат html код....

Постраничный вывод данных на react
Привет. Сразу к сути - нужно сделать на react постраничный вывод товаров. Вывод всех товаров на...

Objects are not valid as a React child (found: TypeError: response[0].includes is not a function). REACT
Всем привет. Создаю страничку на React. Смысл работы примерно таков : пользователь заходит,...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru