• react之redux增加删除数字


    比如在页面中添加和删除‘222’

    action.js

    export const ADD= 'ADD';
    export const RED='RED';
    export const add=(str)=>{
      return{
        type:'ADD',
        payload:str
      }
    };
    export const red=(str)=>{
      return {
        type:'RED',
        payload:str
      }
    };

    reducer.js

    import {combineReducers} from 'redux';
    import {ADD,RED} from '../action';
    const initialState = {
      cartData:["1","2","3"]
    };
    const cartReducer=(state=initialState,action)=>{
      state = JSON.parse(JSON.stringify(state));//深拷贝数据
      switch (action.type){
        case ADD:
          state.cartData.push('222');
          return {cartData:state.cartData};
          break;
        case RED:
          state.cartData.pop();
          return {cartData:state.cartData}
        default:
          return state;
      }
    };
    const reducer = combineReducers({
      cartReducer
    });
    export default reducer;

    addStr.js

    import React,{Component} from 'react'
    import { connect } from 'react-redux';
    class AddStr extends Component{
      constructor(props){
        super(props)
      }
      render(){
        const {cartData,addCartData}= this.props;
        const datas=this.state.datas;
        console.log(datas)
        return(
          <div className='adds'>
            <ul>
              {
                cartData.map((item,index)=>{
                   return <li key={index}>{item}</li>
                })
              }
            </ul>
            <button onClick={()=>addCartData()}>添加字符</button>
          </div>
        )
      }
    }
    function mapStateToProps(state) {
      return{
        cartData:state.cartReducer.cartData
      }
    }
    function mapDispatchToProps(dispatch) {
      return{
        addCartData:()=>dispatch({type:'ADD'})
      }
    
    }
    export default connect(
      mapStateToProps,
      mapDispatchToProps
    )(AddStr);

    redStr.js

    import React, { Component } from 'react';
    import { connect } from 'react-redux';
    class RedStr extends Component{
      constructor(props){
        super(props);
      };
      render(){
        const {cartData,addCartData}= this.props;
        return (
          <div>
            <button onClick={()=>addCartData()}>删除字符串</button>
          </div>
        )
      }
    }
    function mapStateToProps(state) {
      console.log(state.cartReducer);
      return{
        cartData:state.cartReducer.cartData
      }
    }
    function mapDispatchToProps(dispatch) {
      return{
        addCartData:()=>dispatch({type:'RED'})
      }
    }
    export default connect(
      mapStateToProps,
      mapDispatchToProps
    )(RedStr);

    roots.js

    import React, { Component } from 'react';
    import AddStr from '../components/addStr'
    import RedStr from '../components/redStr'
    class Roots extends Component{
      constructor(props){
        super(props);
      }
      render(){
        return (
          <div>
            <AddStr/>
            <RedStr />
          </div>
        )
      }
    }
    export default Roots;
  • 相关阅读:
    js进阶 12-2 彻底弄懂JS的事件冒泡和事件捕获
    js进阶 12-1 jquery的鼠标事件有哪些
    css3-11 如何实现2D动画
    ECLIPSE IDEA 调音 1
    vim note(3)
    SyntaxHighlighter代码高亮插件
    POI使用汇总
    C和指针 (pointers on C)——第三章——数据
    写了一个初中同学——为了有效地完成现有的知识积累
    [DB][mybatis]MyBatis mapper文件引用变量#{}与${}差异
  • 原文地址:https://www.cnblogs.com/wdxue/p/8134373.html
Copyright © 2020-2023  润新知