reactjs - 在 React 中使用 this.state 中的值的语法
问题描述
我的代码为:
export default class MyComponent extends React.Component {
constructor(props) {
super(props);
this.state = {
value: []
};
}
useValue() {
myValue = this.state.value;
doSomething(myValue);
}
}
我注意到有两种方法可以使用value
inthis.state
myValue = this.state.value;
和
const {value} = this.state;
那么这两者有什么区别呢?使用一个对抗另一个有什么好处吗?非常感谢!
解决方案
第一个例子是一个简单的赋值,第二个例子是使用对象解构赋值(Docs)。
使用解构赋值和普通变量赋值的主要区别在于,使用解构时可以在一行中声明更多变量。因此,假设您有以下对象:
const obj = {
foo1: 'someValue',
foo2: 'anotherValue',
foo3: 'lastValue',
};
你需要在不同的变量中有 3 个属性,你可以这样做:
const foo1 = obj.foo1;
const foo2 = obj.foo2;
const foo3 = obj.foo3;
通过解构赋值,您可以执行以下操作:
const { foo1, foo2, foo3 } = obj;
如您所见,它更易于阅读,并且您编写的代码更少来声明变量。解构还有很多其他事情可以做,但在这种特殊情况下,这是主要原因。
推荐阅读
- facebook-graph-api - Facebook Graph Api 发布以提供反馈:“(#100) 参数地点必须是有效的地点标签 ID”
- amazon-web-services - 禁用 Bitnami 横幅后,Apache 未运行,Httpd 无法启动
- javascript - 如何在 JavaScript 中将 ArrayBuffers 与 DataViews 一起使用
- javascript - 无法在 Iframe 沙盒允许脚本下播放 openload 视频
- perl - Perl - 无法打开和读取文件
- ssh - 将 OpenNebula 数据存储从本地 FS 迁移到 NFS 的建议
- jupyter-notebook - 使用pytorch时无法在jupyter笔记本中导入'torchtext'模块
- ios - 应用内购买:产品标识符的排序数组
- android - 平台不支持SSR
- mysql - django.db.utils.OperationalError: (1045, u"Access denied for user 'my_user'@'localhost' (using password: NO)")