从不是组件的普通JS文件访问Redux

时间:2018-08-02 11:00:18

标签: reactjs

在我们的react.js网站上,我们制作了一个javascript文件,其中包含用于创建axios的基本URL,并且只编写一次代码,并在每次向数据库发送请求时都使用它,问题是我们需要从此普通javascript访问Redux不是组件的文件。有没有办法从中访问redux?

1 个答案:

答案 0 :(得分:2)

需要从商店致电getState。这是一个示例:

store.js

import { createStore } from 'redux'

function counter(state = 0, action) {
  switch (action.type) {
  case 'INCREMENT':
    return state + 1
  case 'DECREMENT':
    return state - 1
  default:
    return state
  }
}
​
let store = createStore(counter)
export { store }

normal-javascript-file.js

import { store } from './store.js'

// you can call getState() to get current store state.
console.log(store.getState())

如果您的普通javascript文件未与react-app捆绑在一起,则需要将商店实例分配给window对象,以使其在世界各地都可使用:

store.js

import { createStore } from 'redux'

function counter(state = 0, action) {
  switch (action.type) {
  case 'INCREMENT':
    return state + 1
  case 'DECREMENT':
    return state - 1
  default:
    return state
  }
}
​
let store = createStore(counter)
window.appStore = store

export default store

normal-javascript-file.js

var store = window.appStore

console.log(store.getState())