首页 > 其他 > 详细

useReducer代替Redux

时间:2019-11-15 11:18:07      阅读:124      评论:0      收藏:0      [点我收藏+]

创建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

  

 

 

技术分享图片

useReducer代替Redux

原文:https://www.cnblogs.com/js-liqian/p/11864885.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!