redux的reducer的拷贝问题

摘要:
首先,Redux的减速器是一个肤浅的复制品。冲掉的原因是浅拷贝没有将Just put状态放在前面。

首先指出一点,Redux的reducer是浅复制。冲掉的原因,是因为浅复制没有放在更新数据前,把...state放在前面就好了。
Redux作者DanAbramov推荐用Object.assign()and...spread浅复制来在reducer中更新状态:

所以浅复制实现方法:
原生方式:
var newObj=Object.assign({},someobj);
或者
var newObj={...someobj};
jQuery方式:
var copiedObject=jQuery.extend({},originalObject)
再说下与本问题无关的深复制:
原生方式:
var newObj=JSON.parse(JSON.stringify(someobj));
jQuery方式:
var copiedObject=jQuery.extend(true,{},originalObject)


react中reducer的写法如下:

export const actionType = {
  setBetInfo: 'setBetInfo',
  setBetCount: 'setBetCount',

};
const reducer = {
  [actionType.setBetInfo]: (state, { payload }) => {
    return { ...state, betInfo: payload };
  },
  [actionType.setBetCount]: (state, { payload }) => {
    return { ...state, betCount: payload };
  },
};

免责声明:文章转载自《redux的reducer的拷贝问题》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇老李分享:Android -自动化埋点 3Centos 6.5-yum安装出现错误解决方案下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

jQuery动画效果

jQuery提供的一组网页中常见的动画效果,这些动画是标准的、有规律的效果;同时还提供给我们了自定义动画的功能。 显示动画 方式一: $("div").show(); 解释:无参数,表示让指定的元素直接显示出来。其实这个方法的底层就是通过内部封装了display: block;实现的。 <body> <div></div...

转载:前端大牛们都学过哪些东西?

作者:秦墨鱼链接:http://www.zhihu.com/question/22146521/answer/94842197来源:知乎著作权归作者所有,转载请联系作者获得授权。 学过的东西杂而不精,算不得大牛。带过前端团队,也算是有几年前端负责人的经验。随着这几年前端node.js,react,Angularjs等技术新起,越来越多从之前单纯的前端开发到...

JQuery实现省市区三级联动

[中国地区列表.xml下载] jquery版本:1.2.6,传说jquery1.3异步加载会出现卡的情况。 js内容: Codevar j = jQuery.noConflict();var prov="";var city="";var area="";j(function(){    j.get("/Js/Message/address.xml",f...

jquery--监听checkbox多选框是否选中,展示输入框

<div> <input type="checkbox" name="add_choice" onchange="javascript:oBtAddChoice();"> 是否添加姓名 &nbsp; &nbsp; &nbsp; <input type="text" name="nam...

常用移动web开发框架--转载

  阅读目录 1.1 jQuery mobile flat-ui 主题 1.2jQuery mobile Bootstrap 主题 4.1 GMU   4.2 Clouda+  4.3 efe    5.1 Spirit 5.2 Frozen UI       纯粹的总结一下移动web开发框架,移动web开发框架有jQuery Mobile 、...

jquery 鼠标滚轮事件 插件 Mousewheel

jquery插件默认是不支持鼠标中轮滚轮事件的,现在我们可以用于添加跨浏览器的鼠标滚轮支持可以使用jquery的Mousewheel插件。 使用mousewheel事件有以下两种方式: 使用mousewheel和unmousewheel事件函数; 使用经典的bind和unbind函数。 JavaScript Code复制内容到剪贴板 $('div.m...