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
    

      

  • 相关阅读:
    Hive(二)CentOS7.5安装Hive2.3.3
    Hive(一)Hive初识
    CentOS7.5搭建ELK6.2.4集群及插件安装
    开发工具之Spark程序开发详解
    Java多线程编程
    数据迁移之Sqoop
    CentOS7.5之Sqoop1.4.7的安装使用
    Hadoop案例(十一)MapReduce的API使用
    Hadoop案例(十)WordCount
    BSScrollViewEdgePop
  • 原文地址:https://www.cnblogs.com/js-liqian/p/11864885.html
Copyright © 2011-2022 走看看