RN-useReducer-Context

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'});

发表评论

电子邮件地址不会被公开。 必填项已用*标注