от
Для моего класса мы создаем сайт с React, и ни я, ни моя группа не можем понять, как просто перевести функцию в переменное состояние и сделать ее динамичной Мой код выглядит следующим образом:
class App extends React.Component {
  constructor(props)
  {
    super(props)
    this.state = {
      screen: this.home(),
      movies: []
    }
  }
  home = () =>{
      this.state.movies.map((movie)=>{
        return(
          
            
          
        )
      })
    }
  render(){
   return(
       {this.state.screen}
    )
  }
}
Когда я запускаю это, ошибка читает
TypeError: Cannot read property 'movies' of undefined
Можно предположить, что переменная в фильмах состояния заполнена массивом фильмов, установленным API Изменить: Конечный результат, который я пытаюсь достичь, - это возврат переменной или состояния, в котором может храниться функция, которая будет отображаться на разных экранах / страницах.              

Ваш ответ

Отображаемое имя (по желанию):
Конфиденциальность: Ваш электронный адрес будет использоваться только для отправки уведомлений.
Анти-спам проверка:
Чтобы избежать проверки в будущем, пожалуйста войдите или зарегистрируйтесь.

2 Ответы

0 голосов
от
Если ваш массив
movies
заполнен данными из любого вызова API, вы можете напрямую использовать этот массив для визуализации данных,
class App extends React.Component {
  constructor(props)
  {
    super(props)
    this.state = {
      movies: []
    }
  }

  render(){
   return(
0 голосов
от
Основная причина заключается в том, что
this.state
не инициализируется, когда вы используете его вызовом
home()
в конструкторе. В любом случае, вы не должны хранить визуализированный контент в
state
. Основываясь на комментарии, вот рефакторинг, но я бы порекомендовал вместо этого взглянуть на реальный маршрутизатор, такой как реагирующий маршрутизатор.
const HomeView = ({ movies }) =
Добро пожаловать на сайт ByNets, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...