redux 练习1 单个rudecer

import { createStore } from 'redux'
import { useEffect, useState } from 'react'

const initState = {
  login: false
}

const reducer = (state = initState, action) => {
  const newState = {...state}
  switch (action.type) {
    case 'login':
      newState.login = action.login
      return newState
    default:
      return state
  }
}

const store = createStore(reducer)

export default function Login() {

  const [login, setLogin] = useState(store.getState().login)

  useEffect(() => {
    // 订阅 监听store的变化
    store.subscribe(() => {
      setLogin(store.getState().login)  
    })
  }, [])

  return <>
    {/* store.dispatch 发布一个action改变reducer */}
    <button onClick={ () => store.dispatch({type: 'login', login: !login}) }>{ login ? '退出登录' : '去登录' }</button>
    <p>{ login ? '登录了' : '未登录' }</p>
  </>
}
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容