【问题标题】:Values method in lodash not working as expectedlodash 中的值方法未按预期工作
【发布时间】:2018-06-12 00:01:11
【问题描述】:

我正在使用 redux 构建一个反应应用程序。 redux 管理的 state 是 objects 的一个对象。我想从状态中遍历一个对象并使用 map 渲染它。所以我使用 _.values 从 lodash 获取对象数组(因为我要渲染的对象也是对象的对象)。但是 values 方法没有返回包含我所有对象的数组,而是返回了一个长度为 1 的数组,其中包含整个对象。 这是应用组件:

const App = () => {
  const { contacts } = store.getState();
  console.log(_.values(contacts))
  return (
    <div className="App">
      <Sidebar contacts={_.values(contacts)} />
      <Main />
    </div>
  );
};

这是减速器:

import { contacts } from "../static_data";
export default (state = { contacts }, action) => {
    return state;
};

这是 _.values(contacts) 的 console.log 的结果:

[{…}]
0
:
{ryg93t2eQ: {…}, rkel52Fhem: {…}, S1-xchK3gX: {…}, HkMg53Khgm: {…}, r1QxqnFhgX: {…}, …}
length
:
1

【问题讨论】:

  • console.log(contacts) 显示什么?
  • @Barmar 它在问题老兄中,它显示了一个长度为 1 的数组,包含我要渲染的对象的一个​​对象。
  • 那是console.log(_.values(contacts)),不是console.log(contacts)
  • 您可能想要_.values(contacts.someProperty),属性名称将显示在console.log(contacts)
  • @Barmar aaa 抱歉,是的,它是对象的对象!

标签: javascript reactjs redux lodash


【解决方案1】:

我认为您的问题是在减速器中包裹在联系人周围的对象。我在下面删除了它:

import { contacts } from "../static_data";
export default (state = contacts, action) => {
    return state;
};

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-22
    • 2015-01-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-05-07
    相关资源
    最近更新 更多