#javascript #reactjs #react-redux
#javascript #reactjs #react-redux
Вопрос:
Я пытаюсь преобразовать данные JSON с глубокой вложенностью следующим образом
Данные
[
{
_id: 1,
name: 'name',
children: [...]
},
];
Компонент React
import React from 'react';
const TableRow = ({ standard }) => {
if (standard.children amp;amp; standard.children.length === 0) {
return <p>Children-{standard.name}</p>;
}
return (
<div>
<p>Parent-{standard.name}</p>
{standard.children amp;amp;
standard.children.length amp;amp;
standard.children.map((child, i) => (
<>
<TableRow
key={`${child._id}`}
standard={child}
/>
</>
))}
</div>
);
};
export default TableRow;
Родительский компонент
{updatedStandards.map((standard) => (
<TableRow key={standard._id} standard={standard} />
))}
Во время запуска компонента браузер зависает …
Комментарии:
1. Есть ли у вас какой-либо эффект использования или что-то в родительском или дочернем элементе?
2. Может ли быть родительский элемент, который также является дочерним элементом в будущем? Это создало бы цикл. (Хотя это невозможно, если это JSON)
3. Поскольку ваш браузер зависает, здесь определенно происходит бесконечный цикл, поэтому попытайтесь понять, почему React не «останавливает» рендеринг TableRow в какой-то момент. Я предполагаю
standard.children amp;amp; standard.children.length === 0
, что по какой-то причине этого не происходит… немного сложно «угадать» отсюда4. Родительский элемент имеет useEffect для получения данных из API @JoseRojas