问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

如何测试react中的this.state

发布网友 发布时间:2022-04-22 19:38

我来回答

1个回答

热心网友 时间:2022-04-07 10:13

state表示react组件内部的一种状态,通过组件内的getInitialState函数,可以为组件的初始状态赋值,当组件的状态发生改变时,组件会重新渲染。官方对state的说明如下:
组件其实是状态机(State Machines)
React 把用户界面当作简单状态机。把用户界面想像成拥有不同状态然后渲染这些状态,可以轻松让用户界面和数据保持一致。

React 里,只需更新组件的 state,然后根据新的 state 重新渲染用户界面(不要操作 DOM)。React 来决定如何最高效地更新 DOM。

二、如何使用state
通过setState函数,可以为组件指定一个状态,当这个状态发生改变时,组件会自动重新渲染,下面的代码展示了state的用法:
[html] view plain copy print?在CODE上查看代码片派生到我的代码片
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>State</title>
<script type="text/javascript" src="../react-0.13.0/build/react.js"></script>
<script type="text/javascript" src="../react-0.13.0/build/JSXTransformer.js"></script>
</head>
<body>
<div id="container"></div>
<script type="text/jsx">
var HelloWorld = React.createClass({
getInitialState: function() {
return {
inputContent: 'World'
};
},
handleChange: function(event){
this.setState({inputContent: event.target.value});
},
render: function() {
return (
<div>
Hello <span>{this.state.inputContent}</span>
<br/><input type="text" onChange={this.handleChange} />
</div>
);
}
});
React.render(
<HelloWorld />,
document.getElementById('container')
);
</script>
</body>
</html>
在浏览器中,以上代码执行的效果如下:
初始情况显示如下:

当输入框中的内容发生改变时,Hello后面的字符串会跟着变化成输入的内容:

下面解释以上代码:
首先我们在HelloWorld组件中实现了getInitialState函数,该函数返回的是初始时组件的状态值,这里我们返回了一个对象,对象内部有一个inputContent值,在组件的render函数中,我们渲染了一个输入框,并且给输入框加上了事件监听,当输入框中内容发生改变时,会执行handleChange函数,在handleChange函数内部,通过this.setState函数,更新了组件的状态,更新状态时组件会自动重新渲染,所以在输入框中输入的内容会同步显示在页面上,另外,在<span>标签中,通过{this.state.inputContent},获取了state对象中的inputContent的值。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
除了IQ ,EQ...还有什么Q??? ...我打不开QQ空间,网页下面显示网页有错误,但是网页打开已完成._百度... 电脑上能上QQ QQ空间也能上 但是别的网页打不开 怎么回事 求大神... adobe怎么更改gpucache文件夹路径? 怎么回向消除自己的罪障? 最正确的心经回向文 ...弟子申洪愿以本次持诵佛号的功德回向给亲爸亲妈,亲妹,亲弟,妻子... 如何在win10下安装docker? windows(win10)上的docker使用:安装(国内镜像)、操作 win10安装dockerWin10下Docker安装和使用 姜汁松花蛋的做法汁 React组件方法中为什么要绑定this 姜汁松花蛋怎么做? react子组件this.props.xxx返回undefined 姜汁松花蛋的做法 苹果6怎么重设ID密码呢? 金针菇炒牛肉的做法 金针菇炒牛肉怎么做 西红柿和金针菇能一起吃吗 牛肉金针菇汤的做法 羽绒服被洗衣机甩后里面绒毛填充厚薄不均匀,么办列? 羽绒服怎么样清洗才不会越来越薄 羽绒服穿几年不保暖了是什么原因? 羽绒服放机洗厚薄不均了怎么办。 个人的车辆过户给单位需要什么手续?到什么部门办理? 车辆过户要带什么手续,到哪里去办 个人车辆过户到公司需要什么手续 个人车辆想要过户到公司怎么办理都需要带什么手续? 小汽车过户手续如何办理 私家车过户需要怎么办理? 在哪里买车可上个人户?需要什么什么手续 姜汁松花蛋怎么做如何做好吃 React Native中的this,怎么理解 姜汁松花蛋的做法有哪些? react中这几种定义函数的方式,有什么区别 姜汁松花蛋怎么调汁 react 这样的写法怎么使用this.state this.setState? 姜汁皮蛋有什么做法? react 箭头函数 可以把this当参数吗 松花蛋姜汁松花蛋怎么做 姜汁松花蛋的汁怎么调 姜汁松花蛋窍门 怎么解决React中多个组件间的事件传递 React中如何优雅的捕捉事件错误 小米手机突然耗电很快 姜汁松花蛋怎么做? this.refs undefined怎么解决 姜汁松花蛋的做法 松花蛋拌豆腐的做法 proptypes 在react中不能用为什么 姜汁皮蛋怎么做 姜汁皮蛋咋做