这是我的减速机的一个问题。
case GET_COIN_PRICE:
return {
...state,
coins: {
...state.coins,
[action.coin.name]: {
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
},
}
我想将每个嵌套状态合并到每个原始状态。
(比如......州,......州政府)
这里的问题是[action.coin.name]部分。
我确实喜欢:
1
[action.coin.name]: {
...state.coins.action.coin.name,
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
2
[action.coin.name]: {
...state.coins[action.coin.name],
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
然而,它返回: TypeError:无法读取未定义的“某个变量”的属性。
如何准确指出嵌套状态?
如果您对其他文件感到好奇, 有关详细信息:https://github.com/sj602/invescoin
答案 0 :(得分:2)
这个问题似乎来自于stateCOins在你使用它时没有被定义的事实,你可以有条件地处理它像
case GET_COIN_PRICE:
return {
...state,
coins: {
...(state.coins || []),
[action.coin.name]: {
...((state.coins && state.coins[action.coin.name]) || [])
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
},
}
答案 1 :(得分:0)
以下内容如何:
case GET_COIN_PRICE:
return {
...state,
coins: Object.assign({}, state.coins,
{
[action.coin.name]: {
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
}
})
}