【发布时间】:2018-10-13 11:37:57
【问题描述】:
我是一个反应新手,我试图从几个动作中获取数据 - 在一个组件中,所以我的目标是这样做:
假设我有一个组件名称 在里面我想这样做:
componentWillMount() {
this.props.fetchGenres();
this.props.fetchMovies();
}
在出口区:
AllMovies.propTypes = {
fetchMovies: propTypes.func.isRequired,
fetchGenres: propTypes.func.isRequired,
genres: propTypes.array.isRequired,
movies: propTypes.array.isRequired
};
const mapStateToProps = state => ({
genres: state.genres,
movies: state.movies.items,
newMovie: state.movies.item,
editedMovie: state.movies.item
});
export default connect(
mapStateToProps,
{ fetchMovies, fetchGenres }
)(AllMovies);
如果我在“导出默认连接”中仅使用一个地图,我不会收到任何错误 - 但是当我将另一个地图添加到连接对象时 - 我会收到错误
所以我的问题是 - 这是将多个状态映射到道具的正确方法吗?
【问题讨论】:
-
另一个
map是什么意思?在 redux 中只有一种状态。你为什么需要另一个mapStateToProps? -
一个 mapStateToProps 可以从 redux 存储中获取所有状态,并通过 connect 方法将它们作为 props 可用,那么为什么还需要另一个 mapStateToProps 呢?
-
如果您想传递函数,请将其添加到 mapStateToProps 中,而不是将其作为调度的一部分传递。尝试在 mapStateToProps 中添加 fetchMovies: fetchMovies, fetchGenres: fetchGenres