zoukankan      html  css  js  c++  java
  • useReducer代替Redux

    创建state.js

    import React, { createContext,useContext,useReducer } from 'react';
    
    export const countText = createContext({})
    export const updateCount = 'updateCount'
    const reducer = (state,avtion) => {
      switch (avtion.type) {
        case 'updateCount':
          return avtion.count;
        default:
          return state
      }
    }
    export const Count = (props) => {
      const [count,dispatch] = useReducer(reducer,0)
      console.log(count,dispatch)
        return (
          <countText.Provider value={{count,dispatch}}>
            {props.children}
          </countText.Provider>
        )
    }
    

      index.js

    import React, { useContext,useReducer } from 'react';
    import {countText,updateCount} from './state'
    
    function Clicks () {
      console.log(useContext(countText))
      const {dispatch,count} = useContext(countText)
      // console.log(dispatch)
      return (
        <div>
            <h2>点击{useContext(countText).count}</h2>
            <button onClick={() => {dispatch({type:updateCount,count:count+1})}}>点击</button>
        </div>
      )
    }
    export default Clicks
    

      index2.js

    import React, { useState,useContext,createContext } from 'react';
    import {countText} from './state'
    
    // const a =createContext(context)
    function Index () {
      // console.log(children)
      return <div>{useContext(countText).count}</div>
    }
    export default Index
    

      

  • 相关阅读:
    Linux命令格式与修改文件权限的命令
    Linux 文件基本属性
    Linux 系统目录结构
    Linux 系统启动过程
    Linux在线学习模拟器
    jQuery做的自定义选项卡
    jQuery做的可编辑表格
    海康解码器对接总结(java 版)
    Java线程总结(二)
    Java线程总结(一)
  • 原文地址:https://www.cnblogs.com/js-liqian/p/11864885.html
Copyright © 2011-2022 走看看