第二章 openblock-gui实现用户登录1(切换登录与未登录状态)

本文介绍了如何使用Redux和React Redux实现用户登录状态的切换。首先,创建了一个user-state reducer来定义登录状态,并在reducers/gui.js中初始化。接着,在container/gui.jsx中通过mapStateToProps将登录状态传给UI组件。在components/gui/gui.jsx和menu-bar.jsx中更新UI以显示登录/注销按钮。最后,创建了一个自定义的LoginButton组件,并在menu-bar中替换原有的登录按钮。文章还预告了下一步将讲解国际化相关内容。

切换登录与未登录状态

前言

接下来几章将带大家实现实现用户登录。这里要求大家必须掌握redux与react-redux,否则你将看到云里雾里,考虑到部分人可能没有学习过React、redux与react-redux,这里建议这部分人先别往下,前去bilibili学习下React相关知识:尚硅谷2021版React技术全家桶全套完整版(零基础入门到精通/男神天禹老师亲授),学完再继续。

代码编写

创建一个user-state的reducer,在src->reducers文件夹下新建user-state.js,代码如下:

//初始化字符串的
import keyMirror from 'keymirror'

//定义用户登录状态
const UserState = keyMirror({
   
   
    //未登录状态
    NOT_LOGINED: null,
    //已登录状态
    LOGINED: null
})

const UserStateOB = Object.keys(UserState)

//初始化用户状态
const initState = {
   
   
    error: null,
    userData: null,
    loginState: UserState.NOT_LOGINED
}

//获取用户登录状态
const getLoginState = loginState => loginState === UserState.LOGINED

//定义一个reducer
const reducer = function(state=initState, action) {
   
   
    //暂时未实现任何操作,返回state就行
    return state
}

//将所写的全部暴露出去
export {
   
   
    reducer as default,
    initState as userStateInitState,
    UserState,
    UserStateOB,
    getLoginState
}

reducers/gui.js作为这个项目所有信息初始化的地方,因此我们定义的user-state也要在此做初始化,这里省略已有的项目代码,用…表示

//引入刚才暴露的reducer与初始化方法
<
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值