我有这个结构
API的服务器响应
每个主题都必须在单独的响应中
所以基本上数组有3个层次
我想在特定票据中的特定子票据中添加新的子票据
这是状态图
这有效,但显然是可变的
state[topic_id].tickets[ticket_index].subtickets = state[topic_id].tickets[ticket_index].subtickets.concat(action.subticket);
return {...state};
这也可以使用,并且是不变的,但是会附加到第二层(ticket)
return {
...state
,[topic_id]:{
...state[topic_id]
,tickets:[
...state[topic_id].tickets
,action.subticket
]
}
} ;
考虑到这一点,这应该可以,但不能
return {
...state
,[topic_id]:{
...state[topic_id]
,tickets:[
...state[topic_id].tickets
,[topic_id]:[
...state[topic_id].tickets[topic_id],
subtickets:[
...state[topic_id].tickets[topic_id].subtickets,
action.subticket
]
]
]
}
}
我正在尝试2天,我不知道最后一句话有什么问题
答案 0 :(得分:0)
更新:这有效
import { cloneDeep } from 'lodash';
{...}
let newState = cloneDeep(state);
newState[topic_id].tickets[ticket_index].subtickets = newState[topic_id].tickets[ticket_index].subtickets.concat(action.subticket);
return newState;
据我了解,cloneDeep性能不佳
仍然,对于原始注释中的第三段代码有什么问题的答案,我们将不胜感激
答案 1 :(得分:0)
尝试以下:
d = d.rename(index=m['FUND_TOTAL_ASSETS_CRNCY'], level=0)
print (d)
Assets
date
USD 2012-01-01 14.32
2012-01-02 14.32
2012-01-03 14.32
2012-01-04 14.34
d['FX_price'] = d_fx.lookup(d.index.get_level_values(1), d.index.get_level_values(0))
print (d)
Assets FX_price
date
USD 2012-01-01 14.32 1.0
2012-01-02 14.32 1.0
2012-01-03 14.32 1.0
2012-01-04 14.34 1.0
希望有帮助。 谢谢