Mongodb 在何处将版本v置于redux状态?
我有一个分散在应用程序中的模型。我有一个redux状态树:Mongodb 在何处将版本v置于redux状态?,mongodb,redux,Mongodb,Redux,我有一个分散在应用程序中的模型。我有一个redux状态树: { page: { modelPart1: ..., ... : { modelPart2: ... } } 我还需要在我的状态中保留对mongoDb\uv的引用。最好的地方在哪里 我在考虑一个单独的分支model\u metadata,它将保存关于文档的元数据(\u id,\u v,…) { model_元数据:{每个reducer只能访问它自己的状态部分,所以当您这样做时 comb
{
page: {
modelPart1: ...,
... : {
modelPart2: ...
}
}
我还需要在我的状态中保留对mongoDb\uv
的引用。最好的地方在哪里
我在考虑一个单独的分支model\u metadata
,它将保存关于文档的元数据(\u id,\u v,…)
{
model_元数据:{每个reducer只能访问它自己的状态部分,所以当您这样做时
combineReducers({
one,
another
});
在one
中访问state
,相当于执行store.getState().one
,对另一个也一样。因此,您需要将状态的页面
属性中的数据分为两部分:实际数据和元数据。就像从Mongo检索的对象一样
让元数据和实际数据由同一个reducer处理的要点是,每次执行reducer函数时,该函数的状态
参数中都有对象所需的一切。将数据拆分为两个不同的reducer会使事情变得更复杂
因此,页面
中的新数据表示形式如下
{
model_metadata: { <------------------------ HERE
model: {
_id: id,
__v: 2
}
}
page: {
modelPart1: ...,
... : {
modelPart2: ...
}
}
connect(state => ({
page: state.page
})(...)
感谢您尝试帮助Rishat。一个问题。当您说“页面中的数据表示形式”看起来像“然后您故意复制粘贴了我的代码?您不想修改它吗?在我的情况下,我正在跨多个页面访问模型。然后按“保存”时,我正在“收集”整个应用程序中关于模型的所有数据。这完全是故意的。想法是,不是state.page
,而是state.page.page
现在包含页面数据。是的,这与我的方法非常相似。为什么不:)你在项目中使用过它吗?我没有,但如果我使用了,我只会在单个对象中混合元数据和实体数据,是吗因为只要属性名不发生冲突(两个相同的属性代表不同的内容,非常不可能发生),这样做不会有任何坏处。
connect(state => ({
page: state.page
})(...)