Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/27.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 不可变js映射获取深度映射对象_Reactjs_Redux_React Router_Immutable.js - Fatal编程技术网

Reactjs 不可变js映射获取深度映射对象

Reactjs 不可变js映射获取深度映射对象,reactjs,redux,react-router,immutable.js,Reactjs,Redux,React Router,Immutable.js,我在redux状态下有一个来自连接的react路由器的不可变映射 router: { location: { pathname: '/test', search: '', hash: '', state: { tokenIds: { size: 2, _map: { size: 2, _root: { owne

我在redux状态下有一个来自连接的react路由器的不可变映射

router: {
    location: {
      pathname: '/test',
      search: '',
      hash: '',
      state: {
        tokenIds: {
          size: 2,
          _map: {
            size: 2,
            _root: {
              ownerID: {},
              entries: [
                [
                  '70c48738',
                  true
                ],
                [
                  '1a8a6c24',
                  true
                ]
              ]
            },
            __altered: false
          }
        }
      },
      key: 'rkh3ve'
    },
    action: 'POP'
  }
我想提取tokenIds数组。我期待着像这样的事情
[70c48738,1a8a6c24]

我尝试了
state.getIn(['router','location','state','tokenid')
但得到的结果是

Map {size: 3, _root: ArrayMapNode, __ownerID: undefined, __hash: undefined, __altered: false}

这就是ImmutableJS的工作原理。通过调用
state.getIn(['router','location','state','tokenIds')
您正在访问ImmutableJS
Map
实例,它不仅仅是一个JS
Map
或JS对象。您仍然需要对其进行处理以获得所需的内容。请查看如何访问实际数据


例如,为了实现您的期望,您可以执行:
state.getIn(['router','location','state','tokenIds')).keySeq().toJS()
-这将返回
Map
键的常规JS数组。或者不返回
toJS()
获取ImmutableJS
数组
实例。

这就是ImmutableJS的工作原理。通过调用
state.getIn(['router','location','state','tokenIds'))
您正在访问ImmutableJS
Map
实例,它不仅仅是一个JS
Map
或JS对象。您仍然需要对其进行处理以获得所需的内容。请查看如何访问实际数据

例如,为了实现您的期望,您可以执行以下操作:
state.getIn(['router','location','state','tokenIds']).keySeq().toJS()
-这将返回
Map
键的常规JS数组。或者不使用
toJS()
来获得不可变的JS
array
实例