Reactjs 从redux saga函数访问React上下文值

Reactjs 从redux saga函数访问React上下文值,reactjs,redux,react-redux,redux-saga,react-context,Reactjs,Redux,React Redux,Redux Saga,React Context,我有一些变量,这些变量由React Context通过React.createContext()和Provider和Consumer组件控制。我也在使用redux saga,所以我的问题是在redux saga函数中是否有访问此上下文值的方法。我正在寻找类似于“yieldselect”语句的东西,它可以与redux商店一起使用 任何知道的人请向我解释。提前谢谢你 p/S:当前,我在分派操作时将上下文值传递给操作对象负载。所以在redux传奇中,我们可以在动作参数中使用它。我不知道这是否是最佳实践

我有一些变量,这些变量由React Context通过React.createContext()和Provider和Consumer组件控制。我也在使用redux saga,所以我的问题是在redux saga函数中是否有访问此上下文值的方法。我正在寻找类似于“yieldselect”语句的东西,它可以与redux商店一起使用

任何知道的人请向我解释。提前谢谢你

p/S:当前,我在分派操作时将上下文值传递给操作对象负载。所以在redux传奇中,我们可以在动作参数中使用它。我不知道这是否是最佳实践。

编辑:现在有一个软件包,可以让您轻松获取上下文

您可以保留提供者组件的外部引用,并从中获取状态

像这样的

提供者组件

class AppProvider extends Component {
  state = {
    number: 10,
  }

  render() {
    return (
      <AppContext.Provider value={this.state}>
        {this.props.children} 
      </AppContext.Provider>
    )
  }
}
类AppProvider扩展组件{
状态={
编号:10,
}
render(){
返回(
{this.props.children}
)
}
}
应用程序主条目文件,或引用该提供商实例的位置

let appProviderRef
export const getProviderState = () => appProviderRef.state

ReactDOM.render(
  <AppProvider ref={ref => appProviderRef = ref}>
    <App />
  </AppProvider>
, document.getElementById('root'))
 
让appProviderRef
export const getProviderState=()=>appProviderRef.state
ReactDOM.render(
appProviderRef=ref}>
,document.getElementById('root'))

现在,您可以从redux sagas(或任何您想要的地方)同步调用
getProviderState

获取状态上下文的全部要点是为特定子树提供可选值,据我所知,这只获取上下文的第一个值,它可以只使用普通的js模块变量并按需导入。但是如果我需要访问真实的react上下文(例如路由器上下文…),该怎么办?