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
    

      

  • 相关阅读:
    c++ 中 pair 的 使用方法
    初窥c++11:lambda函数及其用法
    HDU2089-不要62
    算法训练 K好数
    点评删除和编辑
    事务
    SQL Function 自定义函数
    常用CSS实例
    分页显示数据
    开发教程指南
  • 原文地址:https://www.cnblogs.com/js-liqian/p/11864885.html
Copyright © 2011-2022 走看看