Redux 中“mapStateToProps”和“mapDispatchToProps”有什么用?

5 react-redux

我无法理解 mapDispatchToPropsmapStateToProps的实际使用,所以请举例说明。

小智 2

mapDispatchToProps 和 mapStateToProps 是两个 API。

mapStateToProps 提供了 store 的当前状态对象,使用它我们可以过滤和使用所需的状态部分。我们还可以提供 ownProps 参数,其中包含组件的父级提供的参数。例如:

   const mapStateToProps = (state, ownProps) => {
     return state;
   }
Run Code Online (Sandbox Code Playgroud)

mapDispatchToProps 让函数在我们的组件中可用。因此,通过 actionCreators,我们可以提供可以直接使用的函数,而无需将它们分派到我们的组件内,例如:

const mapDispatchToProps = dispatch => {
return {
    login1: bindActionCreators(login, dispatch)
}
}
Run Code Online (Sandbox Code Playgroud)

这里提供给绑定函数的登录名是从动作文件中作为 * 导入的。例如,从“文件名”导入登录名作为*

现在 Connect 是另一个 API,由 React-Redux 提供,它提供了真正的粘合剂并使事情正常工作,例如:

  export default connect(mapStateToProps,null,mapDispatchToProps)(Login)
Run Code Online (Sandbox Code Playgroud)

这里的 Login 是我们需要映射到的组件(类)。

希望这可能会清楚,差异请随时询问是否还有更多疑问