我对mapStateToProps()
的当前理解是将当前设置的Redux存储映射到要在组件内设置的任何prop。我还知道,组件中的props are variables that are passed to the component and
state`只是正在使用的并发变量组。
让我感到困惑的是,我在许多站点/文档上看到您永远都不应更改道具。.mapStateToProps()
确实在物理上更改道具属性并违背了这种精神吗?
在一种情况下,假设我们要在运行某些后端进程时显示加载符号,如果我想应用此值来显示加载程序,则可以创建一个设置IS_LOADING= True
的分派。在我的组件中,我会将其应用于组件中的prop加载,但是当组件首次加载时,由于state.loading还不存在,在运行mapStateToProps()时不会出错吗?
答案 0 :(得分:1)
让我感到困惑的是,我在许多站点/文档上看到您永远都不应更改道具
这意味着您不应从内部组件更改道具。这个想法是父母为孩子创造道具。如果道具更改,组件会重新渲染。
但是,当首次加载组件时,由于state.loading还不存在,它在运行mapStateToProps()时不会出错吗?
如果正确配置存储,则不会发生。商店是在顶层创建的,因此当您的子组件初始化商店时,商店已经存在。因此,您必须正确配置初始状态。例如将初始isLoading
的值设置为false
。