admin管理员组文章数量:1291038
I have this initialState
in my Redux store:
const initialState = {
isFetching : false,
active : {}
}
Where active
is an object.
Now I have an action that should append or add a property to active
’s data
property, like so:
[DASHBOARD_TEMPLATE_DATA_RECEIVE]: (state, action) => {
return Object.assign({}, state, {
isFetching : false,
active : Object.assign({}, active, {data[action.key]: action.data})
})
}
As you can see, data[action.key]
is not permitted. How do I do it?
I have this initialState
in my Redux store:
const initialState = {
isFetching : false,
active : {}
}
Where active
is an object.
Now I have an action that should append or add a property to active
’s data
property, like so:
[DASHBOARD_TEMPLATE_DATA_RECEIVE]: (state, action) => {
return Object.assign({}, state, {
isFetching : false,
active : Object.assign({}, active, {data[action.key]: action.data})
})
}
As you can see, data[action.key]
is not permitted. How do I do it?
3 Answers
Reset to default 8Try with this:
active: Object.assign({}, active, {
data: Object.assign({}, data, {
[action.key]: action.data
})
})
Build the object up first, making use of square bracket notation to use a string as a property name:
var data = {};
data[action.key] = action.data;
then use that newly created object:
[DASHBOARD_TEMPLATE_DATA_RECEIVE]: (state, action) => {
return Object.assign({}, state, {
isFetching : false,
active : Object.assign({}, active, data)
})
}
I would guess a puted property name might work.
Untested:
active: Object.assign({}, active, {[data[action.key]]: action.data})
本文标签: javascriptObject assign with dynamic variableStack Overflow
版权声明:本文标题:javascript - Object assign with dynamic variable - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1741523570a2383333.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论