我被分配到一个正在进行的项目ReactJs。在查看代码时,我遇到了一个函数定义,其签名如下:
handleInputs({ target: { name, value } }) {
handleInputs是一个在文本字段的onChange事件上调用的函数。叫做
onChange={this.handleInputs}
我试图在控制台中输出“ target”的值,但是抛出了错误。而“name”和“值”的值是输入控制及在所述控制值的名称分别
有人可以解释一下功能签名吗?
答案 0 :(得分:1)
这是对象分解分配语法。我们可以将对象作为参数传递给函数,根据指定的函数参数(对象键)将其解压缩。在您的情况下,this.handleInputs
应该是具有键target: { name, value }
的对象。在函数内部,我们可以直接访问键值。
通过mozilla docs中的以下示例,您可以更好地理解语法。另请参阅此link,了解更多详细信息
function whois({displayName, fullName: {firstName: name}}) {
console.log(displayName + ' is ' + name);
}
var user = {
id: 42,
displayName: 'jdoe',
fullName: {
firstName: 'John',
lastName: 'Doe'
}
};
console.log('userId: ' + userId(user)); // "userId: 42"
whois(user); // "jdoe is John"