React / Redux-何时使用状态和道具/何时更换道具

时间:2019-11-28 10:14:14

标签: javascript reactjs react-native redux

我对mapStateToProps()的当前理解是将当前设置的Redux存储映射到要在组件内设置的任何prop。我还知道,组件中的props are variables that are passed to the component and state`只是正在使用的并发变量组。

让我感到困惑的是,我在许多站点/文档上看到您永远都不应更改道具。.mapStateToProps()确实在物理上更改道具属性并违背了这种精神吗?

在一种情况下,假设我们要在运行某些后端进程时显示加载符号,如果我想应用此值来显示加载程序,则可以创建一个设置IS_LOADING= True的分派。在我的组件中,我会将其应用于组件中的prop加载,但是当组件首次加载时,由于state.loading还不存在,在运行mapStateToProps()时不会出错吗?

1 个答案:

答案 0 :(得分:1)

  

让我感到困惑的是,我在许多站点/文档上看到您永远都不应更改道具

这意味着您不应从内部组件更改道具。这个想法是父母为孩子创造道具。如果道具更改,组件会重新渲染。

  

但是,当首次加载组件时,由于state.loading还不存在,它在运行mapStateToProps()时不会出错吗?

如果正确配置存储,则不会发生。商店是在顶层创建的,因此当您的子组件初始化商店时,商店已经存在。因此,您必须正确配置初始状态。例如将初始isLoading的值设置为false