用户登录

React 组件的状态发生变化以后,组件就会被重建,这样界面就会显示变化之后的样子。在组件里修改组件的状态要通过 setState 这个方法。

在这个 AppHeader 组件里,先定义一个方法,名字是 changeEmoji ,在它里面可以执行一下 this.setState,修改一下组件里的状态。可以给它提供一个对象参数,或者函数参数。

先试一下提供一个对象参数,要修改的是 emoji 这个 state,对应的值可以判断一下 this.state.emoji,如果组件当前 emoji 这个状态的值是一棵树🌴,就把 emoji 这个状态的值改成一座帐篷🏕,不然就让它的值是一棵树🌴。

然后在构造方法里面,可以每隔一段时间就执行一下这个 changeEmoji 方法。用一下浏览器提供的 window.setInterval 这个方法,它可以设置每隔一段时间执行一些动作。先给它提供一个回调,要执行的是 this.changeEmoji(),间隔的时长设置成 3000 毫秒,也就是 3 秒钟。

在浏览器预览一下,现在页面上显示的表情符号每隔 3 秒钟就会变化一次。这里我们可以再观察一下页面元素, 你会发现每次有变化的地方只是这个表情符号,其它的元素不会受到影响。因为 React DOM 会对比 React 元素还有页面当前的显示,只会更新需要的地方。

这个 setState 方法的参数还可以是一个函数,如果给它提供的是函数,第一个参数是组件当前的 state,第二个参数是组件的 props,如果在函数里不需要使用 props,参数名可以设置成一个下划线。

函数返回的值是组件的新的状态,同样可以修改一下 emoji 这个 state,这里我们可以直接使用 state 这个参数,不需要再加这个 this 了。

再到浏览器上预览一下,效果跟之前是一样的,每隔一段时间,表情符号就会发生变化。

修改 React 组件的状态(setState)《 React.js 前端应用开发:基本概念 》

统计

14696
分钟
0
你学会了
0%
完成

社会化网络

关于

微信订阅号

扫描微信二维码关注宁皓网,每天进步一点