reactjs – 在反应组件之外访问redux存储的最佳方式是什么?

当我尝试访问反应组件中的商店时,@connect工作得很好.但是我应该如何使用其他一些代码来访问它.例如:假设我想使用授权令牌来创建可以在我的应用程序中全局使用的axios实例,那么最好的方式是什么?

这是我的api.js

// tooling modules
import axios from 'axios'

// configuration
const api = axios.create()
api.defaults.baseURL = 'http://localhost:5001/api/v1'
api.defaults.headers.common['Authorization'] = 'AUTH_TOKEN' // need the token here
api.defaults.headers.post['Content-Type'] = 'application/json'

export default api

现在我想从我的商店访问一个数据点,这里是如果我试图在反应组件中使用@connect来获取它

// connect to store
@connect((store) => {
  return {
    auth: store.auth
  }
})
export default class App extends Component {
  componentWillMount() {
    // this is how I would get it in my react component
    console.log(this.props.auth.tokens.authorization_token) 
  }
  render() {...}
}

任何见解或工作流程模式在那里?

从您称为createStore的模块导出商店.那么你确信它们都将被创建,并且不会污染全局窗口空间.

MyStore.js

store = createStore(myReducer);
出口商店

要么

store = createStore(myReducer);
出口默认商店;

MyClient.js

从’./MyStore’导入{store}
store.dispatch(…)

或者如果您使用默认值

进口商店从’./MyStore’
store.dispatch(…)

翻译自:https://stackoverflow.com/questions/38460949/what-is-the-best-way-to-access-redux-store-outside-a-react-component

转载注明原文:reactjs – 在反应组件之外访问redux存储的最佳方式是什么?