javascript - 带有 React 的 Redux 存储未定义
问题描述
我有个问题。我需要更新 api.js 中的商店。我找到了一个解决方案,您可以简单地导入商店并从中调用调度函数。但。导入 api.js 时,我收到一条错误消息,指出商店未定义 请帮助我。告诉我为什么,我很感兴趣。如果有任何解决方案,我也想看看。谢谢
这是我的代码结构:
index.js
import React from 'react';
import ReactDOM from 'react-dom';
import './index.css';
import App from './App';
import reportWebVitals from './reportWebVitals';
import {BrowserRouter} from "react-router-dom";
import {Provider} from "react-redux";
import store from './Store/redux-store'
ReactDOM.render(
<Provider store={store}>
<BrowserRouter>
<React.StrictMode>
<App />
</React.StrictMode>
</BrowserRouter>
</Provider>,
document.getElementById('root')
);
reportWebVitals();
redux-store.js
import {applyMiddleware, combineReducers, createStore} from "redux";
import thunk from "redux-thunk";
import authReducer from "./auth-reducer";
let reducers = combineReducers({
auth: authReducer
})
const store = createStore(reducers, applyMiddleware(thunk))
window.store = store
export default store
api.js
import axios from "axios";
import store from '../Store/redux-store'
const instanceWithToken = axios.create({
withCredentials: true,
baseURL: `https://luckly-bus.herokuapp.com/api/v1/`
});
const instanceWithTokenFile = axios.create({
withCredentials: true,
baseURL: `https://luckly-bus.herokuapp.com/api/v1/`,
headers: {
"Authorization": "Bearer " + localStorage.getItem("token"),
'Content-Type': 'multipart/form-data'
}
});
const instance = axios.create({
withCredentials: true,
baseURL: `https://luckly-bus.herokuapp.com/api/v1/`,
});
instanceWithToken.interceptors.request.use(config => {
config.headers.Authorization = "Bearer " + localStorage.getItem("token")
return config
})
instanceWithToken.interceptors.response.use(
config => {
return config
},
async error => {
const originalRequest = error.config
if(error.response.status === 401 && error.config && !error._isRetry){
originalRequest._isRetry = true
try {
const response = await authAPI.refresh()
localStorage.setItem('token', response.data.accessToken)
localStorage.setItem('tokenRefresh', response.data.refreshToken)
return instanceWithToken.request(originalRequest)
}
catch (e){
localStorage.removeItem('token')
localStorage.removeItem('tokenRefresh')
}
}
throw error
}
)
解决方案
推荐阅读
- laravel - Laravel 全局范围:ErrorException 未定义属性:App\Models\User::$company
- c++ - 在 C++ 中按引用返回与按值返回
- java - 子类与通用通配符捕获不匹配
- python - 如何在 python 中打开 .vol 文件(来自 3D 超声)?
- unity3d - 聚光灯破碎的阴影
- c - 如何访问对结构的引用的引用的成员。(结构**)
- php - 如何使用服务将产品 ParentId 添加到 LineItems
- php - 收到“未经授权的请求”。在 PHP 中使用 Firebase Authentication 提供的令牌
- jms - Wildfly 23 无法从服务模块加载器链接监听器:Jakarta/jms/messageListener
- python - 我试图安装 Pyaudio 但有一些错误