Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/26.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
Reactjs Redux reducer指向(访问)嵌套状态_Reactjs_React Native_React Redux - Fatal编程技术网

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
        }
      }
    })
  }