初学React,setState后获取到的thisstate没变,还是初始state?
来源:互联网 发布:双串联谐振双向三端口 编辑:程序博客网 时间:2024/04/30 16:17
问题:(javascript)初学React,setState后获取到的thisstate没变,还是初始state?
描述:
解决方案1:
描述:
getInitialState(){ return {data:[]}; }, componentDidMount(){ var data = [ { author: "Pete Hunt", text: "This is one comment" }, { author: "Jordan Walke", text: "This is *another* comment" } ]; (function(data){ this.setState({data:data}); console.log(this.state.data); }).call(this,data); },
为什么log里打出来的data是[]
呢?
解决方案1:
react 的 setState 是异步执行的,所以你后面立即 console 是还没改变状态, setState 函数接受两个参数,一个是一个对象,就是设置的状态,还有一个是一个回调函数,就是设置状态成功之后执行的,你可以这样:
(function(data){ var that = this; this.setState({data:data}, function () { console.log(that.state.data); });}).call(this,data);
解决方案2:不能立即 console.log(this.state.data);的,你可以在 render方法里取
解决方案3:善用官方文档:
void setState( function|object nextState, [function callback])
The second (optional) parameter is a callback function that will be executed once setState is completed and the component is re-rendered.
所以正确做法是
this.setState( Object.assign({}, { data }), () => console.log(this.state))
0 0
- 初学React,setState后获取到的thisstate没变,还是初始state?
- 震惊! React中三个方法获取setState更新之后的state !其中一个竟用到Promise!
- react native setState之后的state值不能立即使用
- React的异步更新的setState
- react setState 的回调函数
- React的setState立即执行方案
- React总结1:异步更新的setState
- React总结8:setState()的参数
- React 之 setState
- React中setState回调
- React setState(多次调用setState真的会影响性能吗?)
- react-native的state
- 关于React的setState的回调函数
- 关于React “Cannot read property 'setState' of null” 的错误
- 关于React “Cannot read property 'setState' of null” 的错误
- android 页面跳转到上个页面后之后再返回,页面没变
- React —(setState 方法)
- 多次presentViewController后,直接返回到初始的viewcontroller
- LXC容器虚拟化配置
- if else 错误的判断
- 用C++设计一个不能被继承的类
- 软件工程的几个步骤
- 淘忆项目之服务器端的初始化
- 初学React,setState后获取到的thisstate没变,还是初始state?
- DNS协议笔记
- Jquery根据name和value属性循环选中radio
- HTML5多媒体播放video元素
- 最小生成树
- c++泛型编程中的traits技术
- 2016-8-22:html一些的标准
- FastDFS集群服务器搭建
- 【C#】VS根据系统自动更改引用64和32位的动态库