app页面定义-->中间文件(LoginContext)-->使用的页面
中间文件:
import React from 'react';
export default React.createContext();
app页面:
先定义:
const initiaState = {
logined: false,
};
function reducer(prevState, action) {
let clone = JSON.parse(JSON.stringify(prevState));
switch (action.type) {
case 'login':
clone.logined = true;
break;
case 'loginout':
clone.logined = false;
break;
default:
break;
}
return clone;
}
// 这里开始是引入Context
import LoginContext from './components/LoginContext';
//在组件内使用
const [state, dispatch] = useReducer(reducer, initiaState);
<LoginContext.Provider value={{state,dispatch}}></ LoginContext>
使用的页面:
import LoginContext from './LoginContext';
//组件内
const context = useContext(LoginContext);
context.dispatch({type: 'login'});