Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在对象中使用动态特性_Javascript_Reactjs_Ecmascript 6 - Fatal编程技术网

Javascript 如何在对象中使用动态特性

Javascript 如何在对象中使用动态特性,javascript,reactjs,ecmascript-6,Javascript,Reactjs,Ecmascript 6,我有一个handleInputBlur函数,它有一个动态参数。假设我有这样一个.props.user对象 { name: 'abc', age: 10 } 然后在我的UI中,我可以进行内联编辑,因此handleInputBlur将获得一个名为changeField的参数,该参数将是一个包含已更改字段的对象: { age: 10 } 我仍然需要将整个对象传递回后端,如何用现有对象替换更新的字段 我尝试了此操作,但出现意外的令牌错误: handleInputBlur = (changedFiel

我有一个handleInputBlur函数,它有一个动态参数。假设我有这样一个.props.user对象

{ name: 'abc', age: 10 }
然后在我的UI中,我可以进行内联编辑,因此handleInputBlur将获得一个名为changeField的参数,该参数将是一个包含已更改字段的对象:

{ age: 10 }
我仍然需要将整个对象传递回后端,如何用现有对象替换更新的字段

我尝试了此操作,但出现意外的令牌错误:

handleInputBlur = (changedField) => {

    const existingUser = this.props.user

    const updatedUserObj = Object.assign({}, existingUser, {
        existingUser[changedField]: changedField
    })
}
如何根据changedField的键和值更新现有用户?

使用括号括住键,使其计算值用作键:

const key = Object.keys(changedField)[0];
const updatedUserObj = Object.assign({}, existingUser, {
    [key]: changedField[key]
})
首先,将计算表达式键的值,然后将该值用作键。请注意,Object.keyschangedField[0]是键的值。这样做的目的是获取changedField对象内的第一个键-正在更改的属性,如“name”或“age”。然后,通过访问changedField中第一个键的值,将该属性设置为新属性的值