Почему мой React-компонент не отображается при вызове из метода render()?

Как можно исправить ошибку в коде компонента `CharList`, когда при попытке получить данные из состояния и создать массив `cardDataList`, программа не работает, не выводит ошибку и не создает нужный конечный массив?
  • 18 апреля 2024 г. 15:11
Ответы на вопрос 2
Возможно, проблема заключается в том, что вы не возвращаете React-элемент из метода `render()` вашего компонента, или возможно, вы неправильно используете данные из состояния. 

Чтобы исправить ошибку в компоненте `CharList`, убедитесь, что вы правильно обращаетесь к состоянию компонента и правильно обрабатываете данные. Ниже приведен пример возможного исправления:

```jsx
import React, { Component } from 'react';

class CharList extends Component {
  constructor(props) {
    super(props);
    this.state = {
      cardData: [
        { id: 1, name: 'Char1' },
        { id: 2, name: 'Char2' },
        { id: 3, name: 'Char3' }
      ]
    };
  }

  render() {
    const cardDataList = this.state.cardData.map((card) => (
      <div key={card.id}>{card.name}</div>
    ));
    
    return (
      <div>
        {cardDataList}
      </div>
    );
  }
}

export default CharList;
```

В этом примере мы правильно используем данные из состояния для создания массива `cardDataList`, который затем отображается в методе `render()`. Убедитесь, что ваш компонент правильно отрабатывает данные из состояния, и вернуть корректный JSX-элемент из метода `render()`.
Ох, сложно на самом деле, я сам Vue разработчик, на React немного работал, но почему у вас в render функции какие-то константы, переменные, деструктуризация? У вас есть state, внутри render используется this.state и получайте доступ куда нужно, для обработки данные создавайте методы и через них проводите операции над массивами, советую к прочтению 

UPD:
нашел видимо ошибку const cardDataList = Array.from(this.state);
Вы пытаетесь из this.state сделать массив? Или как?

Видимо нужно const cardDataList = Array.from(this.state.dataCards);
Похожие вопросы