reactjs - React Redux 路由器传递道具
问题描述
我有这个 App.js
const mapStateToProps = (state) => {
return {
isPeddingHome: state.getShowsHome.isPeddingHome,
data: state.getShowsHome.data,
isPeddingMovies: state.getShowsMovies.isPeddingMovies,
movies: state.getShowsMovies.movies,
isPeddingSeries: state.getShowsTv.isPeddingSeries,
series: state.getShowsTv.series
}
}
const mapDispatchToProps = (dispatch) => {
return {
onGetShows: () => dispatch(getShows()),
onGetMovies: () => dispatch(getMovies()),
onGetSeries: () => dispatch(getTvSeries())
}
}
const App = () => {
return (
<Router>
<Switch>
<Route exact path="/" component={Home}/>
<Route path="/movies" component={MoviesPage}/>
<Route path="/tv" component={tvSeriesPage}/>
</Switch>
</Router>
);
}
export default connect(mapStateToProps, mapDispatchToProps)(App);
我想传递我用 mapStateToProps 创建的道具,例如
on Home pass only 数据,isPeddingHome 和 onGetShows,有可能吗?
我尝试使用
render={(props) => <Home {...props} />}
传递但不传递任何东西给组件
解决方案
传递给render
prop 函数的参数是route props
,而不是给App
组件的 props。
您也可以传播App
道具和路线道具以获得您想要的东西。
const App = props => {
return (
<Router>
<Switch>
<Route
exact
path="/"
render={routeProps => <Home {...props} {...routeProps} />}
/>
<Route path="/movies" component={MoviesPage} />
<Route path="/tv" component={tvSeriesPage} />
</Switch>
</Router>
);
};
推荐阅读
- c# - DotNet Core 在启动后设置连接字符串已经运行
- swift - Swift 中的 M13Checkbox 选定操作?
- google-cloud-platform - Dataproc 错误上的 Zepplin BigQuery 连接
- bash - 如何提取远程 VM 的操作系统版本并将其设置为远程 VM 上的环境变量,并在期望脚本中进一步使用?
- django - 如何使用 POST 请求从 Django 表单接收数据并在 Html 模板上呈现
- flutter - 为什么任何小部件都是无状态的?
- r - 我可以使用 Shiny observeEvent 观察哪些事件?
- android - 如何在打盹模式 8.0 Oreo 设备中获取 GPS 更新?
- angular - Angular 7+ 中的 ClassDefinition 有什么类似物吗?
- c# - 如何异步调用单个方法“n”次?