Javascript 为什么我能';是否在onChange事件中从目标中删除结构值?
我试图在1倍的时间内从元素中解构我的值,但我必须在单独的行中进行。。这不是阻塞,但真的很烦人 我想做的是:Javascript 为什么我能';是否在onChange事件中从目标中删除结构值?,javascript,reactjs,optimization,Javascript,Reactjs,Optimization,我试图在1倍的时间内从元素中解构我的值,但我必须在单独的行中进行。。这不是阻塞,但真的很烦人 我想做的是: const onChangeValue = ({ target: value}) => { onChange({ attribute, indexValue, value }); }; 我需要做的是: const onChangeValue = ({ target }) => { const { value } = target
const onChangeValue = ({ target: value}) => {
onChange({ attribute, indexValue, value });
};
我需要做的是:
const onChangeValue = ({ target }) => {
const { value } = target;
onChange({ attribute, indexValue, value });
};
有什么想法吗?我与React(CRA)合作
我希望我不会提出一个已经被问过的问题。。因为我搜索什么都找不到。您的两个代码段不相等,因此1个代码段有效,而另一个代码段无效。与您第二个使用参数解构的示例相同的是
const onChangeValue = ({ target: {value}) => {
onChange({ attribute, indexValue, value });
};
您的第一个代码段(在值
周围没有{}
)正在将目标
重命名为值
,而我的代码段中的花括号指定值
是目标
中的属性,它本身就是参数中的属性
为了澄清,给定一个名为arg
的参数
- 您的第一个代码段访问
,并将其分配给arg.target
value
- 您的第二个代码段访问
,将其分配给arg.target
,然后将target
分配给target.value
value
const onChangeValue = ({ target: {value}) => {
onChange({ attribute, indexValue, value });
};
您的第一个代码段(在值
周围没有{}
)正在将目标
重命名为值
,而我的代码段中的花括号指定值
是目标
中的属性,它本身就是参数中的属性
为了澄清,给定一个名为arg
的参数
- 您的第一个代码段访问
,并将其分配给arg.target
value
- 您的第二个代码段访问
,将其分配给arg.target
,然后将target
分配给target.value
value
const onChangeValue = ({ target }) => {
onChange({ attribute, indexValue, target });
};
将起作用,您将得到以下对象:
onChangeValue = {
attribute: someValue, // same value as 'attribute'
indexValue: someValue, // same value as 'indexValue'
target: someValue // same value as 'target'
}
如果要更改名称,也可以不使用新变量:
const onChangeValue = ({ target }) => {
onChange({ attribute, indexValue, value: target.value });
};
在这个花瓶中,target
将计算出它的值,您可以使用自定义键名(“value”,在本例中),给出:
onChangeValue = {
attribute: someValue, // same value as 'attribute'
indexValue: someValue, // same value as 'indexValue'
value: target.value // same value as 'target.value' with key/name 'value'
}
如果不想更改变量名,则无需执行此操作
const onChangeValue = ({ target }) => {
onChange({ attribute, indexValue, target });
};
将起作用,您将得到以下对象:
onChangeValue = {
attribute: someValue, // same value as 'attribute'
indexValue: someValue, // same value as 'indexValue'
target: someValue // same value as 'target'
}
如果要更改名称,也可以不使用新变量:
const onChangeValue = ({ target }) => {
onChange({ attribute, indexValue, value: target.value });
};
在这个花瓶中,target
将计算出它的值,您可以使用自定义键名(“value”,在本例中),给出:
onChangeValue = {
attribute: someValue, // same value as 'attribute'
indexValue: someValue, // same value as 'indexValue'
value: target.value // same value as 'target.value' with key/name 'value'
}
这回答了你的问题吗?我不明白;你发布的代码“我需要做什么”对我来说很好。你有什么问题?@IceMetalPunk“我需要做什么”就是什么。“我想做什么”是他想做的事,但不起作用。@Bricky啊,是的,我误读了。谢谢你的澄清。这回答了你的问题吗?我不明白;你发布的代码“我需要做什么”对我来说很好。你有什么问题吗?@IceMetalPunk“我需要做什么”就是有效的。“我想做什么”这是他想要做的,但不起作用。@Bricky啊,是的,我误读了。谢谢你的澄清。这是错误的。
参数。target.value
(期望行为)与参数不同。target
(你的第一个代码片段)。这是错误的。参数。target.value
(期望行为)与参数不同。target
(你的第一个片段)。