react-redux 深监听(watchDeep)

2019-07-26  本文已影响0人  AAA前端
import React, { Component, Fragment } from 'react';
import { connect } from 'react-redux';
import { actionCreators } from '../store';
class Main extends Component {  
  render() {
    const { qrcodeReturnList } = this.props;
    return (
      <Fragment>
        {qrcodeReturnList.map(item => {
          return item.bookVos.map(ite => {
            return <span className="l-mr3"
              onClick={(e) => this.onChangeBookState(item.qrCodeNumber, 4, ite.bookBagDetailSysNo)}
            >{ite.bookState}</span>
          })
        })}
      </Fragment>
    )
  }
  // 改变数据中的bookState
  onChangeBookState = (qrcodeNumber, value, bookBagDetailSysNo) => {
    let list = this.props.qrcodeReturnList;
    
    for (let i = 0, len = list.length; i < len; i++) {

      if (qrcodeNumber === list[i].qrCodeNumber) {
        
        const arr = list[i].bookVos;

        for (let j = 0, leng = arr.length; j < leng; j++) {

          if (bookBagDetailSysNo === arr[j].bookBagDetailSysNo) {

            arr[j].bookState = value;

            break;
          }
        }
      }
    }
    
    this.props.changeQrcodeList(list)
  }
}
const mapState = (state) => ({ 
  qrcodeReturnList: state.flowBags.qrcodeReturnList, //获取数据
})
const mapDispatch = (dispatch) => ({
  changeQrcodeList(list) {
    dispatch(actionCreators.changeQrcodeList(list))
  },
})
export default connect(mapState, mapDispatch)(Main);

import React, { Component, Fragment } from 'react';
import { connect } from 'react-redux';
import { actionCreators } from '../store';
class Main extends Component {  
  render() {
    const { qrcodeReturnList } = this.props;
    return (
      <Fragment>
        {qrcodeReturnList.map(item => {
          return item.bookVos.map(ite => {
            return <span className="l-mr3"
              onClick={(e) => this.onChangeBookState(item.qrCodeNumber, 4, ite.bookBagDetailSysNo)}
            >{ite.bookState}</span>
          })
        })}
      </Fragment>
    )
  }
  // 改变数据中的bookState
  onChangeBookState = (qrcodeNumber, value, bookBagDetailSysNo) => {
    let list = this.props.qrcodeReturnList;
    
    for (let i = 0, len = list.length; i < len; i++) {

      if (qrcodeNumber === list[i].qrCodeNumber) {
        
        const arr = list[i].bookVos;

        for (let j = 0, leng = arr.length; j < leng; j++) {

          if (bookBagDetailSysNo === arr[j].bookBagDetailSysNo) {

            arr[j].bookState = value;

            break;
          }
        }
      }
    }
    
    this.props.changeQrcodeList(list)
  }
}
const mapState = (state) => ({ 
  watchDeep: {}, // watchDeep随便写啥都行,这么写语义化一点。 值可以是对象或者数组或函数,不能是字符串,数字,null等
  qrcodeReturnList: state.flowBags.qrcodeReturnList, //获取数据
})
const mapDispatch = (dispatch) => ({
  changeQrcodeList(list) {
    dispatch(actionCreators.changeQrcodeList(list))
  },
})
export default connect(mapState, mapDispatch)(Main);

image.png
上一篇 下一篇

猜你喜欢

热点阅读