mapStateToProps 与 mapDispatchToProps
mapStateToProps vs mapDispatchToProps
connect
函数的mapStateToProps
和mapDispatchToProps
参数有什么区别反应还原?
用一个非常简单的术语来说,
mapStateToProps: 将 redux state 连接到 react 组件的 props。
mapDispatchToProps:它连接 redux 动作以响应 props。
一个非常简单的例子:(我希望,你明白我的意思)
// state
const mapStateToProps = state => {
return { lists: state.lists };
};
// props
const mapDispatchToProps = ({ lists }) => (
<ul>
{
lists.map(el => (
<li key={ el.id }>
{ el.heading }
</li>
)
}
</ul>
);
// Now, connect state to prop
const List = connect(mapStateToProps)(mapDispatchToProps);
mapStateToProps
是一个用于向组件提供商店数据的函数,而 mapDispatchToProps
是用于向组件提供动作创建者作为道具的函数。
根据文档:
If mapStateToProps
argument is specified, the new component will
subscribe to Redux store updates. This means that any time the store
is updated, mapStateToProps
will be called. The results of
mapStateToProps
must be a plain object, which will be merged into
the component’s props.
With mapDispatchToProps
every action creator wrapped into a dispatch
call so they may be invoked directly, will be merged into the
component’s props.
一个简单的例子是
function mapStateToProps(state) {
return { todos: state.todos }
}
function mapDispatchToProps(dispatch) {
return { addTodo: bindActionCreators(addTodo, dispatch) }
}
export default connect(mapStateToProps, mapDispatchToProps)(Todos);
简单来说:
mapStateToProps
当你想从你的组件中获取全局状态的值时被调用
function mapStateToProps(state) {
return {
message: state.message
};
}
全局状态的值只有在动作的帮助下才会改变。所以如果你想改变全局状态的值,你需要一个动作。 mapDispatchToProps
用于在您的组件中绑定操作。
connect
函数的mapStateToProps
和mapDispatchToProps
参数有什么区别反应还原?
用一个非常简单的术语来说,
mapStateToProps: 将 redux state 连接到 react 组件的 props。
mapDispatchToProps:它连接 redux 动作以响应 props。
一个非常简单的例子:(我希望,你明白我的意思)
// state
const mapStateToProps = state => {
return { lists: state.lists };
};
// props
const mapDispatchToProps = ({ lists }) => (
<ul>
{
lists.map(el => (
<li key={ el.id }>
{ el.heading }
</li>
)
}
</ul>
);
// Now, connect state to prop
const List = connect(mapStateToProps)(mapDispatchToProps);
mapStateToProps
是一个用于向组件提供商店数据的函数,而 mapDispatchToProps
是用于向组件提供动作创建者作为道具的函数。
根据文档:
If
mapStateToProps
argument is specified, the new component will subscribe to Redux store updates. This means that any time the store is updated,mapStateToProps
will be called. The results ofmapStateToProps
must be a plain object, which will be merged into the component’s props.With
mapDispatchToProps
every action creator wrapped into a dispatch call so they may be invoked directly, will be merged into the component’s props.
一个简单的例子是
function mapStateToProps(state) {
return { todos: state.todos }
}
function mapDispatchToProps(dispatch) {
return { addTodo: bindActionCreators(addTodo, dispatch) }
}
export default connect(mapStateToProps, mapDispatchToProps)(Todos);
简单来说:
mapStateToProps
当你想从你的组件中获取全局状态的值时被调用
function mapStateToProps(state) {
return {
message: state.message
};
}
全局状态的值只有在动作的帮助下才会改变。所以如果你想改变全局状态的值,你需要一个动作。 mapDispatchToProps
用于在您的组件中绑定操作。