首页 > 关于React中setState的两个问题

关于React中setState的两个问题

今天开始学React,暂时还没考虑Router和Flux,关于state遇到两个问题。
第一个是关于文档中对setState对于数据的处理是Merge的说法,。如果是合并,那么为什么新的state往往用了concat来处理新增的数据?
第二个问题是我在子组件通过props传递的方法更新父组件的state的时候,同时要清除子组件input的值,为什么通过setState空值,UI不更新?
求教。


setState处理数据是对对象按照key->value的方式来merge,concat是处理数组用的,和setState没关系。之所以你看到有人用concat,是因为concat不会改变原来的数组,相对而言,我更推荐你看一下react文档里immutable helper这一章。js既然没有办法在运行时阻止你直接修改state的值,起码你作为一个有追求的程序员可以主动去遵守一些规则,比如这里的通过方法修改类成员的值,而不是直接修改。

第二个,请确认你input的value所使用的值,不能肯定的话请多使用console.log()


  1. 数据你怎么处理都行,没有什么 merge 一说,只要不直接修改 state

  2. 这种问题很可能是你的代码设计问题,应该贴出代码来,不然别人怎么帮你分析问题了

【热门文章】
【热门文章】