【问题标题】:React class connected to the Redux Store连接到 Redux Store 的 React 类
【发布时间】:2018-08-25 05:47:18
【问题描述】:

我正在尝试找出创建普通类的方法,不需要成为组件,因为我不需要渲染任何东西。 目标是在 react 中创建一个不是组件但可以从组件调用的类。 这个类需要能够访问 Redux Store,并且需要有可以从其他组件调用的方法。

我正在尝试创建一个将信息发送到 Mixpanel 的类,因此当用户执行某项操作、查看子页面、单击按钮时,我想从该类中调用一个方法,该方法将从存储并将其发送到 mixpanel。 我尝试了几种方法,但都没有成功。

我正在使用mixpanel-browser 发送信息,但我不希望我使用它的每个组件都连接到商店。这就是为什么我想创建一个可以连接到商店的班级,她会从那里获得所需的信息。

【问题讨论】:

标签: reactjs ecmascript-6 redux


【解决方案1】:

您可以在独立文件中配置商店,然后将其导出,并在您希望的任何地方访问它。 像这样:

/**** store.js ***/
import {createStore} from 'redux'
const store = createStore(...)
export default store


/*** anywhere_you_like.js ***/
import store from './store'

//and you can access store here

class your_class{
    constructor(){
      ....
    }
    accessStore(){console.log(this.store)}
}

your_class.prototype.store = store // then you can access store from your class

/** example ***/
let a = new your_class()
a.accessStore()

【讨论】:

  • 谢谢,但我遇到的问题是在 react 中创建一个不是组件但必须从组件调用的类。
  • 你能添加一个关于如何调用这个类的方法的例子吗?
  • 我从商店里的减速器那里得到一个未定义的结果。另外 this.store 我得到未定义,但存储返回 {dispatch: ƒ, subscribe: ƒ, getState: ƒ, replaceReducer: ƒ, Symbol(observable): ƒ}
  • 您使用的是从 store.js 导出的同一个商店吗?如果不是这样,明天我会在codepen上写一个例子。
  • 是的,我就是这么想的。与您在示例中所做的相同。
猜你喜欢
  • 2017-12-17
  • 2020-05-05
  • 2019-12-26
  • 1970-01-01
  • 2017-06-03
  • 2021-09-21
  • 2018-03-23
  • 2019-07-28
  • 2016-11-11
相关资源
最近更新 更多