Reactjs Redux reducer指向(访问)嵌套状态
这是我的减速机的一个问题案例Reactjs Redux reducer指向(访问)嵌套状态,reactjs,react-native,react-redux,Reactjs,React Native,React Redux,这是我的减速机的一个问题案例 case GET_COIN_PRICE: return { ...state, coins: { ...state.coins, [action.coin.name]: { bithumbPrice: action.bithumbPrice, upbitPrice: action.upbitPrice, b
case GET_COIN_PRICE:
return {
...state,
coins: {
...state.coins,
[action.coin.name]: {
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
},
}
我想将每个嵌套状态合并到每个原始状态
(比如……州……州。硬币)
这里的问题是[action.coin.name]部分
我喜欢:
一,
二,
然而,它返回:
TypeError:无法读取未定义的“某个变量”的属性
如何精确地指向嵌套状态
如果您对其他文件感兴趣,
有关更多详细信息:问题似乎来自这样一个事实:state.coins在您使用它时没有定义,您可以有条件地像
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
}
},
}
那么以下内容呢:
case GET_COIN_PRICE:
return {
...state,
coins: Object.assign({}, state.coins,
{
[action.coin.name]: {
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
}
})
}
谢谢我解决了未定义的问题,但我想让我的状态成为价格的总和。我猜你不明白,所以你能在我的github上面看到我的代码吗?redux logger仅返回最后一个bittrexPrice,而不是bithumb和upbit状态的合并和。非常感谢。
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
}
},
}
case GET_COIN_PRICE:
return {
...state,
coins: Object.assign({}, state.coins,
{
[action.coin.name]: {
bithumbPrice: action.bithumbPrice,
upbitPrice: action.upbitPrice,
bittrexPrice: action.bittrexPrice
}
}
})
}