Нужно ли мне знать, как получить доступ к состоянию allContent в компоненте Root, чтобы затем показать информацию.
import React, {
Component
} from 'react';
import ContentCards from './ContentCards.js';
import $ from 'jquery';
export class SearchBar extends React.Component {
constructor(props)
{
super(props);
this.state = {}
}
search(userSearch)
{
console.log('search in action');
const urlSearch = 'https://api.themoviedb.org/3/search/multi?api_key=16667866c29ba1bc29e687b4892b8d5c&language=en-US&page=1&include_adult=false&query=' + userSearch
$.ajax({
url: urlSearch,
success: (searchs) => {
console.log('Fetched data succesfully');
const results = searchs.results;
var contentSearched = [];
results.forEach(content => {
console.log(content);
content.poster_src = 'https://image.tmdb.org/t/p/w185' + content.poster_path;
const contents = < ContentCards key = {
content.id
}
content = {
content
}
/>
contentSearched.push(contents);
});
this.setState({
allContent: contentSearched
});
},
error: (xhr, status, err) => {
console.error('Failed to fetch data');
}
});
}
searchChangeHandler(event) {
const userSearch = event.target.value;
this.search(userSearch);
}
render() {
return ( <
div className = "navbar-end" >
<
div className = "control has-icons-left has-icons-right" >
<
input className = "input"
onChange = {
this.searchChangeHandler.bind(this)
}
placeholder = "search ..." / >
<
span className = "icon is-small is-right" >
<
i className = "fas fa-search" > < /i> <
/span> <
/div> <
/div>
);
}
}
Предполагается, что компонент Root может получить доступ к состоянию allContent, но мне это не удается.Функция allContent позволяет сохранять все данные, которые вы используете, например, если пользователь ищет фильм аватара, будет показана таблица, относящаяся ко всему содержимому аватара.
import React from 'react';
import {NavBar} from './NavBar';
export class Root extends React.Component{
render(){
return(
<div className='container'>
<div><NavBar/></div>
<hr/>
{this.props.allContent}
</div>
);
}
}