我已经将大部分容器转换为功能组件以使它们可重用,我想知道将Action Creators作为道具传递给这些功能组件是否是一种好习惯。
在这种情况下,我使用选项卡在Login和Sign Up页面之间切换,我使用本地状态来管理活动类(用于样式)。我将动作创建者称为道具,以在呈现登录或注册页面之间切换。我在几个地方使用此选项卡,我根据用例传递不同的配置对象。
homePageTabProps = {
firstTabTitle:"blog",
secondTabTitle:"resume",
showFirstTab: this.props.showBlogTab,
showSecondTab: this.props.showResumeTab
}
这是好习惯吗?是或不是吗?
活动标签样式给我带来了问题(重新使用组件时保留了值)。我可以拥有本地& 全局状态吗? (对不起,如果这听起来很愚蠢。)
答案 0 :(得分:4)
将功能作为道具传递到Components
的层次结构中,这肯定是广为接受的做法。但我建议不要传递裸动作创建者,但在将它们传递给dispatch
之前将它们绑定到Component
。这样,如果您的孩子Component
未与store
相关联,则根本不需要了解Redux
(无需手动dispatch
)。
至于你对两个州的并发症。混合自己的Component
状态与Redux
通过Component
传递给connect
的部分没有错。我甚至强烈建议保留所有临时数据对Component
状态内的应用程序逻辑不重要,而不将其暴露给Redux
。例如,在大多数情况下,将动画时序,用户输入的中间状态等发送到Redux
是没有意义的。
但是,在您的情况下,看起来活动标签的指示是Redux
状态的直接反映,应该从商店获取。否则,不清楚为什么要对标签的更改向Redux
发送操作。