【发布时间】:2021-04-01 19:39:50
【问题描述】:
我有以下项目结构-
我有 GlobalStore.js,其中有以下代码:-
import React from 'react'
const GlobalContext=React.createContext();
const GlobalProvider=GlobalContext.Provider;
const GlobalConsumer=GlobalContext.Consumer;
export {GlobalProvider,GlobalConsumer}
LoginReducers/Login_Action.js 带有以下代码 -
const VERIFY_CREDENTIALS ='VERIFY_CREDENTIALS'
export function VerifyCredentials()
{
return{
type :VERIFY_CREDENTIALS
}
}
LoginReducers/Login_Reducers.js 带有以下代码 -
import Axios from "axios";
import { VerifyCredentials } from "./Login_Action";
const initialState={
userName:"",
password:"",
isVarified:false
}
const url='http://localhost:52016/api/values/';
export const LoginReducer=(state=initialState,action)=>{
switch (action.type) {
case 'VERIFY_CREDENTIALS':
Axios.get(url)
.then(x=>{
alert(x.data);
})
default:
break;
}
}
GlobalStorage/store.js 与以下代码 -
import { createStore } from 'redux';
import { LoginReducer } from "../Components/LoginReducers/Login_Reducers";
export const store=createStore(LoginReducer);
App.js 与以下代码 -
import logo from './logo.svg';
import './App.css';
import Login from './Components/Login';
import { store } from "./GlobalStorage/store";
import {GlobalProvider,GlobalConsumer} from "./GlobalStore";
function App() {
return (
<div className="App">
<GlobalProvider value={store}>
<Login></Login>
</GlobalProvider>
</div>
);
}
export default App;
我遇到以下错误:-
请建议可以进行哪些更改以解决此错误?
另外请建议是否推荐以上代码结构,我通过GlobalProvider分享store。
【问题讨论】:
-
reducer 是纯函数,不能处理异步行为。您需要使用中间件来处理任何异步任务(副作用)。 npmjs.com/package/redux-thunk
标签: javascript reactjs redux react-redux reducers