Аргумент props для рендеринга реквизита prop - это реквизиты маршрутизатора, а не реквизиты компонента, вам нужно изменить код, чтобы передать реквизиты компоненту App
компоненту Home
.
const App = (props) => {
return (
<Router>
<Switch>
<Route exact path="/" render={(routerProps) => <Home data={props.data} onGetShows={props.onGetShows} isPeddingMovies={props. isPeddingMovies} {...routerProps}/>}/>
<Route path="/movies" component={MoviesPage}/>
<Route path="/tv" component={tvSeriesPage}/>
</Switch>
</Router>
);
}
Вы можете деструктурировать реквизит в App.js и передать его в Home, как
const App = ({isPeddingMovies, onGetShows, data}) => {
return (
<Router>
<Switch>
<Route exact path="/" render={(routerProps) => <Home data={data} onGetShows={onGetShows} isPeddingMovies={isPeddingMovies} {...routerProps}/>}/>
<Route path="/movies" component={MoviesPage}/>
<Route path="/tv" component={tvSeriesPage}/>
</Switch>
</Router>
);
}
Однако, поскольку компонент App не использует все реквизиты из mapStateToProps
или mapDispatchToProps
, вы можете просто подключить домашний компонент
const mapStateToProps = (state) => {
return {
isPeddingHome: state.getShowsHome.isPeddingHome,
data: state.getShowsHome.data,
isPeddingMovies: state.getShowsMovies.isPeddingMovies,
}
}
export default connect(mapStateToProps)(Home);