将 Action 创建者传递给 react-redux 应用程序中的功能组件的良好做法?

Good practice to pass Action creators to functional components in a react-redux app?

我已经将我的大部分容器转换为功能组件以使其可重用,我想知道将 Action Creators 作为道具传递给这些功能组件是否是一个好习惯。

在这种情况下,我使用选项卡在登录和注册页面之间切换,并且我使用本地状态来管理活动 class(用于样式)。我称动作创建者作为道具传递下来,以在呈现登录页面或注册页面之间切换。我在多个地方使用此选项卡,并根据用例传递不同的配置对象。

homePageTabProps = {
  firstTabTitle:"blog",
  secondTabTitle:"resume",
  showFirstTab: this.props.showBlogTab,
  showSecondTab: this.props.showResumeTab
}

这是好的做法吗?是还是不是?

编辑:

活动选项卡样式给我带来了问题(在重用组件时保留值)。我可以拥有本地 & 全局状态吗? (抱歉,如果这听起来很愚蠢。)

将函数作为 props 传递到 Components 的层次结构中肯定是被广泛接受的做法。但我建议不要传递裸动作创建者,而是在将它们传递给 Component 之前将它们绑定到 dispatch。这样,如果你的 child Component 没有连接到 store 它根本不需要知道 Redux(不需要手动 dispatch)。

至于你的两种状态的并发症。将 Component 的状态与通过 connect 传递给 ComponentRedux 的一部分混合在一起并没有错。我什至强烈建议将所有对您的应用程序逻辑不重要的临时数据保留在 Component 的状态中,而不将其暴露给 Redux。例如,大多数时候,将动画时间、用户输入的中间状态等发送到 Redux 是没有意义的。

但是,在您的情况下,活动选项卡的指示似乎是 Redux 状态的直接反映,应该从商店中获取。否则不清楚为什么要在选项卡更改时向 Redux 发送操作。