GAF

2017年09月04日 星期一

1.react加购物车防止连续点击

export function asynUpdateShoppingCart(id,amount,isChecked){
  return (dispatch)=>{
    dispatch(createFetchingToast())
    dispatch(beginUpdateShoppingCart())
    dispatch(shoppingCartDoubleClickTrue())
    return api.asynGetUpdateShoppingCart(id,amount,isChecked)
          .then(json=>{
            console.log('单条更新购物车后返回的数据:',json)
            dispatch(shoppingCartDoubleClickFalse())
            if(json.status==0){
              dispatch(successUpdateShoppingCart())
              queryShoppingCartFunc(dispatch)
              dispatch(dismissFetchingToast())
              
            }else if(json.status==1 || json.status==-1){
              dispatch(dismissFetchingToast(json.message))
              dispatch(errUpdateShoppingCart())
              // 更新库存
              // 本地数据和服务器数据不一致时提示完毕后  更新库存  并发情况易发生  概率低
              setTimeout(function(){
                queryShoppingCartFunc(dispatch)
              },1000)
          .catch(err=>{
            dispatch(errUpdateShoppingCart())
            dispatch(addTimeoutFetchingToast(dispatch,err,'出错了,请再次操作!'))
            dispatch(shoppingCartDoubleClickFalse())
          })
  }
}
function shoppingCartDoubleClickTrue(){
  return{
    type:SHOPPING_CART_DOUBLE_CLICK_TRUE
  }
}
function shoppingCartDoubleClickFalse(){
  return{
    type:SHOPPING_CART_DOUBLE_CLICK_FALSE
  }
}

2.new Date() ios不支持,兼容性问题
IOS5中的Safari能正确解析new Date()那么必须这么写new Date('2013/10/21'); 或者 var d = new Date(date);
d = d.getFullYear() > 0 ? d : new Date(Date.parse(date.replace(/-/g, "/")));

new Date(('2017-08-31 00:00:00').split('-').join('/')).getTime();

3.页面刷新的那么一瞬间样式会错乱,解决办法:在刚开始body{dipslay:none},执行到js后在onload中将display属性设置为block.

原文地址:https://www.cnblogs.com/fangfeiyue/p/7472489.html