#reactjs #react-props
#reactjs #реагировать-реквизит
Вопрос:
Я только начал изучать React и пытаюсь передать реквизит дочернему компоненту, как я видел во многих руководствах и документах react. Но я не вижу никаких реквизитов, переданных в моем дочернем компоненте. У меня есть installed React Developer
инструменты в Chrome
Мой код выглядит следующим образом:
App.js
import React, { Component } from 'react';
import './App.css';
import Movies from './Components/Movies';
import GetMovies from './Data/MoviesServie';
class App extends Component {
constructor() {
super();
this.state = {
movies: []
};
}
componentDidMount() {
const movies = [...GetMovies()];
this.setState({ movies }); // 1. setting state
}
render() {
return <Movies movie={this.state.movie} />; // NOT WORKING
}
}
export default App;
Я также попробовал ведение журнала в консоли и обнаружил, что следующие вещи вызываются последовательно
- вызван конструктор (очевидно)
- визуализация
- componentDidMound // здесь я устанавливаю состояние, но по-прежнему регистрируется пустой массив
- рендеринг (снова рендеринг с состоянием задается массивом объектов)
Но когда я вижу реквизиты в <Movies />
компоненте, я ничего там не вижу. Реквизит там нулевой / пустой.
Я не знаю, в чем проблема, в каждом руководстве показан метод, который я использую здесь.
Комментарии:
1. Вы передаете
movie
вместоmovies
.
Ответ №1:
Вы пропустили букву
Изменить return <Movies movie={this.state.movie} />;
Для return <Movies movie={this.state.movies} />;
Комментарии:
1. У меня та же проблема. Я уже проверяю орфографию, и все правильно, но все равно вместо моего ожидаемого значения передается пустая строка. Это всего лишь страница Hello World, с которой я ее передал
ReactDOM.render()
. почему это не передается в пользовательский интерфейс? jsfiddle.net/y1cmgt0e/1