Мой компонент не повторно опускает содержимое

Javascript. Цифровое Кемерово

Перейти к содержимому

  • Меню
    • Темы без ответов
    • Активные темы
    • Поиск
    • Мобильная версия Мобильная версия
  • Вход
  • Регистрация
  • Форум программистов Кемерово-IT Javascript
  • Расширенный поиск
  • Поиск

Мой компонент не повторно опускает содержимое

⇐ Javascript
Форум по Javascript
Ответить
Расширенный поиск
1 сообщение • Страница 1 из 1
Anonymous
 Мой компонент не повторно опускает содержимое
  • Цитата

Сообщение Anonymous » 01 фев 2025, 03:48

Я пытаюсь создать крючок в моем приложении, сделанном в приложении Create React, но при обновлении константы, содержащей информацию, компонент, который показывает список на экране, не отображается снова, но список обновляется, поскольку Крюк возвращает его в консоли (стоит упомянуть, что при загрузке компонента в первый раз он правильно отображается, но не обновляется при изменении информации).

Список продаж

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

import React, { use, useState, useEffect } from 'react';
import { Table } from 'antd';
import UpdateList from '../hooks/updateList';

const SalesList = () => {
const { list, loading, error, updateList } = UpdateList();

useEffect(() => {
updateList();
}, []); /* If I add updateList within the [], it works, but it enters an infinite loop */

useEffect(() => {
console.log('List updated in the component:', list);
}, [list]);

const columns = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
},
{
title: 'Price',
dataIndex: 'price',
key: 'price',
},
{
title: 'Quantity',
dataIndex: 'quantity',
key: 'quantity',
},
{
title: 'Amount Received',
dataIndex: 'amountReceived',
key: 'amountReceived',
},
];

if (loading) return Loading...;
if (error) return Error: {error.message};

return ;
};

export default SalesList;
UpdateList

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

import { useState, useEffect } from 'react';
import useFetchData from '../services/api/showData';

const UpdateList = () => {
const { data, loading, error, fetchData } = useFetchData();
const [list, setList] = useState([]);

const updateList = async () => {
try {
const newList = await fetchData();
setList([...newList]);
console.log('New list obtained:', newList);
} catch (error) {
console.error('An error occurred while updating your data', error);
}
};

useEffect(() => {
updateList();
}, [fetchData]);

return { list, loading, error, updateList };
};

export default UpdateList;
showdata

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

import { useState, useEffect, useCallback } from "react";
import axios from 'axios';

const useFetchData = () => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);

const fetchData = useCallback(async () => {
setLoading(true);
try {
const response = await axios('http://localhost/REACT/my-app/src/backend/php/api/mostrarDatos.php');
if (!response.data.ok) {
return console.error('An error occurred, please restart. If the issue persists, contact the administrator.');
}
setData(response.data.respuesta);
return response.data.respuesta;
} catch (error) {
setError(error instanceof Error ? error : new Error("An unknown error occurred"));
console.error("Error fetching data:", error);
return [];
} finally {
setLoading(false);
}
}, []);

useEffect(() => {
fetchData();
}, [fetchData]);

return { data, error, fetchData };
};

export default useFetchData;
Мне нужно, что при обновлении постоянной lista , компонента, который создает таблицу, обновляется, крюк работает, но он не является повторным использованием данных.

Подробнее здесь: https://stackoverflow.com/questions/794 ... s-of-table
Вернуться к началу
1738370902
Anonymous
 Я пытаюсь создать крючок в моем приложении, сделанном в приложении Create React, но при обновлении константы, содержащей информацию, компонент, который показывает список на экране, не отображается снова, но список обновляется, поскольку Крюк возвращает его в консоли (стоит упомянуть, что при загрузке компонента в первый раз он правильно отображается, но не обновляется при изменении информации).

[b] Список продаж [/b]
[code]import React, { use, useState, useEffect } from 'react';
import { Table } from 'antd';
import UpdateList from '../hooks/updateList';

const SalesList = () => {
const { list, loading, error, updateList } = UpdateList();

useEffect(() => {
updateList();
}, []); /* If I add updateList within the [], it works, but it enters an infinite loop */

useEffect(() => {
console.log('List updated in the component:', list);
}, [list]);

const columns = [
{
title: 'Name',
dataIndex: 'name',
key: 'name',
},
{
title: 'Price',
dataIndex: 'price',
key: 'price',
},
{
title: 'Quantity',
dataIndex: 'quantity',
key: 'quantity',
},
{
title: 'Amount Received',
dataIndex: 'amountReceived',
key: 'amountReceived',
},
];

if (loading) return Loading...;
if (error) return Error: {error.message};

return ;
};

export default SalesList;
[/code]
[b] UpdateList [/b]
[code]import { useState, useEffect } from 'react';
import useFetchData from '../services/api/showData';

const UpdateList = () => {
const { data, loading, error, fetchData } = useFetchData();
const [list, setList] = useState([]);

const updateList = async () => {
try {
const newList = await fetchData();
setList([...newList]);
console.log('New list obtained:', newList);
} catch (error) {
console.error('An error occurred while updating your data', error);
}
};

useEffect(() => {
updateList();
}, [fetchData]);

return { list, loading, error, updateList };
};

export default UpdateList;
[/code]
[b] showdata [/b]
[code]import { useState, useEffect, useCallback } from "react";
import axios from 'axios';

const useFetchData = () => {
const [data, setData] = useState([]);
const [loading, setLoading] = useState(false);
const [error, setError] = useState(null);

const fetchData = useCallback(async () => {
setLoading(true);
try {
const response = await axios('http://localhost/REACT/my-app/src/backend/php/api/mostrarDatos.php');
if (!response.data.ok) {
return console.error('An error occurred, please restart. If the issue persists, contact the administrator.');
}
setData(response.data.respuesta);
return response.data.respuesta;
} catch (error) {
setError(error instanceof Error ? error : new Error("An unknown error occurred"));
console.error("Error fetching data:", error);
return [];
} finally {
setLoading(false);
}
}, []);

useEffect(() => {
fetchData();
}, [fetchData]);

return { data, error, fetchData };
};

export default useFetchData;
[/code]
Мне нужно, что при обновлении постоянной [b] lista [/b], компонента, который создает таблицу, обновляется, крюк работает, но он не является повторным использованием данных.

Подробнее здесь: [url]https://stackoverflow.com/questions/79404250/my-component-does-not-re-render-the-contents-of-table[/url]
Ответить
1 сообщение • Страница 1 из 1

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

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

Если вы не хотите добавлять вложения, оставьте поля пустыми. Можно прикреплять файлы, перетаскивая их в окно сообщения.

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

Имя файла Комментарий к файлу Размер Статус
 

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

Перейти
  • Кемерово-IT
  • ↳   Javascript
  • ↳   C#
  • ↳   JAVA
  • ↳   Elasticsearch aggregation
  • ↳   Python
  • ↳   Php
  • ↳   Android
  • ↳   Html
  • ↳   Jquery
  • ↳   C++
  • ↳   IOS
  • ↳   CSS
  • ↳   Excel
  • ↳   Linux
  • ↳   Apache
  • ↳   MySql
  • Детский мир
  • Для души
  • ↳   Музыкальные инструменты даром
  • ↳   Печатная продукция даром
  • Внешняя красота и здоровье
  • ↳   Одежда и обувь для взрослых даром
  • ↳   Товары для здоровья
  • ↳   Физкультура и спорт
  • Техника - даром!
  • ↳   Автомобилистам
  • ↳   Компьютерная техника
  • ↳   Плиты: газовые и электрические
  • ↳   Холодильники
  • ↳   Стиральные машины
  • ↳   Телевизоры
  • ↳   Телефоны, смартфоны, плашеты
  • ↳   Швейные машинки
  • ↳   Прочая электроника и техника
  • ↳   Фототехника
  • Ремонт и интерьер
  • ↳   Стройматериалы, инструмент
  • ↳   Мебель и предметы интерьера даром
  • ↳   Cантехника
  • Другие темы
  • ↳   Разное даром
  • ↳   Давай меняться!
  • ↳   Отдам\возьму за копеечку
  • ↳   Работа и подработка в Кемерове
  • ↳   Давай с тобой поговорим...
  • Форум программистов
  • Мобильная версия
  • Часовой пояс: UTC+03:00
  • Удалить cookies

Создано на основе phpBB® Forum Software © phpBB Limited Русская поддержка phpBB

Русская поддержка phpBB



Time: 0.010s | Peak Memory Usage: 1.41 МБ | GZIP: On

 

 


Яндекс.Метрика