Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/411.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 我想使用Object.assign和一个变量作为键_Javascript_Reactjs_Ecmascript 6_Redux - Fatal编程技术网

Javascript 我想使用Object.assign和一个变量作为键

Javascript 我想使用Object.assign和一个变量作为键,javascript,reactjs,ecmascript-6,redux,Javascript,Reactjs,Ecmascript 6,Redux,我将一个动作“设置样式”发送到一个减速器,在该减速器中,我更改了一个对象数组(命名层)中由键指定对象的样式对象 困难在于-“filterName”用于接收需要更改的属性名称。 如果我使用另一个属性名,它的行为是正确的,但是'filterName'变量不能用作键 export const set_stl = (val,filterName,chosenLayerId,chosenLayerIdx=0,layers) => { const specLayer = layers[chosenLa

我将一个动作“设置样式”发送到一个减速器,在该减速器中,我更改了一个对象数组(命名层)中由键指定对象的样式对象

困难在于-“filterName”用于接收需要更改的属性名称。 如果我使用另一个属性名,它的行为是正确的,但是'filterName'变量不能用作键

export const set_stl = (val,filterName,chosenLayerId,chosenLayerIdx=0,layers) => {
const specLayer = layers[chosenLayerIdx];
const assignedSpecLayer = Object.assign({}, specLayer, {
    stl: {
        ...specLayer.stl,
        filterName: val
    }
});
const newLayers = layers;
    newLayers[chosenLayerIdx] = assignedSpecLayer;
return dispatch => {
    dispatch({
        type: SET_STL,
        payload: newLayers,
    })
}

})

您需要使用
[]
来使用
过滤器名称的值

stl: {
    ...specLayer.stl,
    [filterName]: val
}

谢谢,它确实有用。杰出的