小编Nic*_*der的帖子

基于mapStateToProps输出重新渲染connect()ed组件

在基于React + Redux的项目中,我有一个connect()ed组件,它通过API提取来检查用户权限.提取的权限存储在Redux存储中.

该组件基本上看起来像<Can check="...">...</Can>,与我们的API(通过Redux操作)对话以解决检查.如果授予了权限,this.props.children则呈现,null否则.

为此,从商店中的授权数据mapStateToProps()计算passesprop,用<Can />s render()方法检查.我利用ownProps参数来mapStateToProps()获取"要检查的东西"并计算passes标志.

有一些缓存正在进行,所以我不会重新获取每个组件挂载,它基本上有效.但是,有时候,当passesprop更新时,组件将不会重新渲染true(但是在导航之后渲染 - 使用反应路由器 - 然后再返回,所以基本上如果组件被重新安装).

connect()编辑组件重新渲染,如果从输出mapStateToProps()的变化?该文档为react-reduxconnect()这样说:

如果将ownProps指定为第二个参数,则其值将是传递给组件的props,并且只要组件接收到新的props,就会重新调用mapStateToProps.

这是否意味着传入ownProps会将渲染更改为仅在道具更改时重新渲染,或者以其他方式重新渲染?如何理解有关记忆/返回功能的说明mapStateToProps(),或者甚至不相关?

谢谢

javascript reactjs redux

10
推荐指数
2
解决办法
6092
查看次数

标签 统计

javascript ×1

reactjs ×1

redux ×1