通过根组件中的 React Context 传递 Redux 存储是不是正确?

Posted

技术标签:

【中文标题】通过根组件中的 React Context 传递 Redux 存储是不是正确?【英文标题】:Is it right way to pass Redux store via React Context in Root Component?通过根组件中的 React Context 传递 Redux 存储是否正确? 【发布时间】:2018-12-12 12:00:47 【问题描述】:

我正在构建一个大型React 应用程序。实际上它是高级管理面板,我想使用Redux 处理应用程序的全局stateRedux Saga 异步操作。

前几天在medium看到一篇文章,讲的是新的React Context API,非常棒又好用。

我还看到了一个有用的Stack Overflow 问题,关于使用React Context,Here 是关于React ContextReact,我的情况有些不同。

就我而言,我想使用Redux 来控制login 等应用程序的全局state、全局数据等,并使用React Context 将这些数据传递给所有组件树,这是正确的方法吗?有没有更好的利用方式?

【问题讨论】:

【参考方案1】:

react-redux 在内部使用context 将数据传递给组件。使用 redux,您可以使用 connect 并将数据提供给需要它的组件。没有必要为此使用上下文

例如你有一个管理组件,你可以像传递状态值给它

import  connect  from 'react-redux';

class Admin extends React.Component 
    ...


const mapStateToProps = (state) => 
    return 
        isLoggedIn: state.isLoggedIn
    


export default connect(mapStateToProps)(Admin);

你可以了解更多here

【讨论】:

以上是关于通过根组件中的 React Context 传递 Redux 存储是不是正确?的主要内容,如果未能解决你的问题,请参考以下文章

React Context API,从子组件设置上下文状态,而不是将函数作为道具传递

React Context上下文学习笔记

React中的connect使用(Provider+Consumer例子 以及 contextType+this.context例子)

react 中的 Context

React中兄弟组件通信和组件跨级传递Context的使用

react context prop-types