将 Redux Store 中的数据存储在另一个数据结构中

Storing Data from Redux Store in Another Data Structure

我的应用程序将数据从 Firebase 加载到加载时的 Redux 存储中。它加载为包含数百个嵌套对象的对象。

为了为该数据呈现 table 组件(具体来说,this one),我必须将其转换为对象数组。

我目前的解决方案是像这样在 table 组件 mapStateToProps() 中简单地转换它(使用 lodash 库):

function mapStateToProps(state) {

    return {
        listingsData: _.values(state.config)
    }
}

这似乎有效,我在 Firebase 仪表板中所做的更改几乎立即成功呈现在我的应用程序中。

我的问题是:这种处理方式是否会导致我的应用程序(数组 + 存储)消耗 2 倍的内存?

几百行不是问题,但我希望一些用户有几千行数据。

如果是 2 倍内存,是否有更有效的方法?

ETA:我认为这个答案将来可能仍然有用,但回想起来我应该写一个小测试。此测试支持以下已接受的答案:

var x = {a:{var:1}, b:{var:2}, c:{var:3}};
var y = _.values(x);

console.log(x, y); //values match

x.a.var = 99;

console.log(x, y); //values still match

据我了解来自 loadash 的 _.values 函数(尚未使用 loadash),在您的情况下,您不是将内存加倍(克隆对象),而是创建对这些对象的引用数组有店就可以了

您可能需要考虑的是在引用之前过滤这些对象,而不是始终创建对每个对象的引用。