如何将Redux存储的一部分转换为数组

黏土

好的,这是我正在吃的泡菜,我的动作之一actions/index.js是:

export function requestPeople() {
  return (dispatch, getState) => {
    dispatch({
      type: REQUEST_PEOPLE,
    })

  const persistedState = loadState() // just loading from localStorage for now
  console.log(persistedState)


  //Object.keys(persistedState).forEach(function(i) {
  //var attribute = i.getAttribute('id')

      //console.log('test', i,': ', persistedState[i])
      //myArr.push(persistedState[i])

    //})
    //console.log(myArr)
  //dispatch(receivePeople(persistedState)) // I'm stuck here
 }
}

当我console.log(persistedState)从上方进入Chrome控制台时,我的people状态完全是这样。

Object {people: Object}

然后,当我深入到people: Object上面时,我像这样得到它们:

abc123: Object
abc124: Object
abc125: Object

当我深入研究其中的每只幼犬时(通过单击Chrome控制台中的小三角形),我会像这样:

abc123: Object
  firstName: 'Gus'
  id: 'abc123'
  lastName: 'McCrae'

// when I drill down into the second one I get
abc124: Object
  firstName: 'Woodrow'
  id: 'abc124'
  lastName: 'Call'

现在,这就是我遇到的问题。

我正在使用的表是Allen Fang的react-bootstrap-table,该表仅接受数组的表,并且这样调用它,<BootstrapTable data={people} />因此我的上述数据需要转换为以下数组:

const people = [{
  id: abc123,
  firstName: 'Gus',
  lastName: 'McCrae'
}, {
  id: abc124,
  firstName: 'Woodrow',
  lastName: 'Call'
}, {
  ...
}]

// and eventually I'll call <BootstrapTable data={people} />

我的问题特别是如何将people上面显示的状态转换为这个必要的数组?在我的action/index.js档案中,我尝试过:Object.keys(everything!!!)

最后,一旦有了数组,将数组传递给<BootstrapTable data={here} />使用状态,变量,分派的动作(我从未听说过)的最佳方法是什么?

任何帮助将不胜感激!仅供参考,这是我在Stack Overflow中的第一个问题,让人怀旧。我是一名专职警务人员,正在尝试一边学习编码。再次感谢!

更新:

多亏了Piotr Berebecki的建议,我将这种方式绑起来:

export function requestPeople() {
  return (dispatch, getState) => {
    dispatch({
      type: REQUEST_PEOPLE,
    })

const persistedState = loadState()
console.log('persistedState:', persistedState)

const peopleArr = Object.keys(persistedState.people).map(function(key) {
  return persistedState[key]
})

console.log(JSON.stringify(peopleArr))

//dispatch(receivePeople(persistedState))
  }
}

并得到[null,null,null]

像这样:

在此处输入图片说明

皮特·贝雷贝克(Piotr Berebecki)

欢迎使用Stack Overflow :)

要将嵌套persistedState.people对象转换为数组,您可以先使用键建立一个临时键数组,Object.keys(persistedState.people)然后map()在这些键上方将每个键替换为原始嵌套对象中找到的对象persistedState.people-在该键处。您可以将结果数组分配给变量,然后将其传递给BootstrapTable在下面查看下面的代码和演示:http : //codepen.io/PiotrBerebecki/pen/yaXrVJ

const persistedState = { 
  people: { 
    'abc123' : {
      id:'abc123',firstName: 'Gus', lastName: 'McCrae'
    }, 
    'abc124' : {
      id:'abc124',firstName: 'Woodrow', lastName: 'Call'
    }, 
    'abc125' : {
      id:'abc125',firstName: 'Jake', lastName: 'Spoon'
    }
  }
}


const peopleArr = Object.keys(persistedState.people).map(function(key) {
  return persistedState.people[key];
});


console.log(JSON.stringify(peopleArr));
/* 
Logs the following array:
[
 {"id":"abc123","firstName":"Gus","lastName":"McCrae"},
 {"id":"abc124","firstName":"Woodrow","lastName":"Call"},
 {"id":"abc125","firstName":"Jake","lastName":"Spoon"}
]
*/

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何将Java源文件的一部分转换为Kotlin?

如何将git config存储为存储库的一部分?

如何将Ruby数组拆分(块)为X元素的一部分?

如何将DataFrame单元格中的一部分字符串转换为数字以进行过滤?

如何仅将字符串列表的一部分转换为整数

如何将下一个查询转换为Power Query,我只能执行第一部分

将Ctypes数组的一部分转换为结构

如何将字符串的一部分转换为整数?

如何将scipy与数组集成为函数的一部分

如何将xml的一部分转换为没有名称空间的新xml?

如何获取JSON响应的一部分并将其转换为某些接口的数组?

如何将基于毫米的数字转换为表示米,厘米和毫米的一部分的数字?

VBA Word如何将数组的一部分传递给子例程?

如何将变量用作数组名称的一部分

如何将字符串的一部分转换为斜体?

如何将字符串的一部分存储到字典中

将字节数组值的一部分转换为String

C ++:将char数组的一部分转换为int的有效方法

如何将数组的一部分复制到新数组。C#

如何将存储库的一部分复制到Artifactory?

将字符串的一部分转换为数组

如何使用 redux-persist 仅存储一部分 redux 状态

基于分组转换数组的一部分

如何将json的一部分存储到另一个json文件中

如何将行转换为列但仅适用于python中表的一部分?

如何将文件名的一部分转换为文件扩展名?

如何将熊猫数据帧的一部分替换为另一部分?

如何将 javascript 对象的一部分存储到变量中?

如何将 Excel 文件名的一部分存储在 Python 整数变量中