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基础命令 wget
    爱情的诗·21~25节
    爱情的诗·16~20节
    爱情的诗·11~15节
    人生的诗·406~410节
    唐诗宋词学习·126~130节
    爱情的诗·6~10节
    人生的诗·401~405节
    唐诗宋词学习·121~125节
    唐诗宋词学习·100~105节
  • 原文地址:https://www.cnblogs.com/js-liqian/p/11864885.html
Copyright © 2011-2022 走看看