Reactjs 商店的不同实例

Reactjs 商店的不同实例,reactjs,redux,Reactjs,Redux,伙计们 我在有标签的地方制作项目,就像浏览器一样。每个选项卡都包含具有不同设置和搜索结果的用户搜索。我找不到存储这些数据的正确方法 我想,我需要几家商店。因为我只有选项卡,可以在不同的应用程序之间切换用户,但是在一个应用程序内部。在另一种情况下,我需要存储两次数据——记住当前状态,并在一些“历史”缩减器中收集旧的搜索 对不起,这是我第一次来这里,如果有人能帮忙的话,请帮忙 您可以创建包含变量及其值的多个数据类。然后,在创建存储时,可以组合并使用这些数据类 此方法允许您在存储中拥有多个分区,并且每

伙计们

我在有标签的地方制作项目,就像浏览器一样。每个选项卡都包含具有不同设置和搜索结果的用户搜索。我找不到存储这些数据的正确方法

我想,我需要几家商店。因为我只有选项卡,可以在不同的应用程序之间切换用户,但是在一个应用程序内部。在另一种情况下,我需要存储两次数据——记住当前状态,并在一些“历史”缩减器中收集旧的搜索

对不起,这是我第一次来这里,如果有人能帮忙的话,请帮忙

您可以创建包含变量及其值的多个数据类。然后,在创建存储时,可以组合并使用这些数据类

此方法允许您在存储中拥有多个分区,并且每个组件都可以订阅它们所需的分区。组件将拥有他订阅的这些部分的数据,并在其中一个部分更新时重新呈现

数据类示例:

pageData.js

export const pageData = {
  pageNumber: 1,
  pageSize: 30,
};
export const userData = {
  language: 'English',
  timezone: 'ESTERN',
};
import pageData from .../pageData;
import userData from .../userData;

const defaultState = {
  pageData,
  userData,
};

export const store = createStore(rootReducer, defaultState));
userData.js

export const pageData = {
  pageNumber: 1,
  pageSize: 30,
};
export const userData = {
  language: 'English',
  timezone: 'ESTERN',
};
import pageData from .../pageData;
import userData from .../userData;

const defaultState = {
  pageData,
  userData,
};

export const store = createStore(rootReducer, defaultState));
然后,在创建存储时将这些类组合在一起:

store.js

export const pageData = {
  pageNumber: 1,
  pageSize: 30,
};
export const userData = {
  language: 'English',
  timezone: 'ESTERN',
};
import pageData from .../pageData;
import userData from .../userData;

const defaultState = {
  pageData,
  userData,
};

export const store = createStore(rootReducer, defaultState));
需要修改
pageData
的减速机也需要名称
pageData
。对于
userData
,情况也是如此

设置完所有这些之后,您必须
mapstatetrops()
将组件映射到您希望它们订阅的数据

例如,如果希望您的
PageComponent.js
只知道pageData,那么在该组件中,您将使用以下方法:

function mapStateToProps (state) {
  return {
    pageData: state.pageData
  };
}
我建议查看以了解如何设置MapStateTops()


当所有这些都完成后,您可以
console.log(this.props)
并查看您的数据部分是否在那里,并且它们之间有很好的分隔。

在redux中,您将始终只有一个存储。我认为您在这里试图做的是在您的存储中有多个分区,这样您的组件就可以只订阅他们需要的分区的更改。创建存储时,在参数中使用defaultState。defaultState可以包含这些多个部分,然后您的还原程序可以分别修改这些部分。如果您愿意,我可以给您写一个简单的示例,说明它的答案。@petithomme是的,请告诉我,如果您可以,我会的grateful@petithomme我想注意到,我可以有,例如,“航班”,“formData”和其他类似的缩减器。但是我需要有多个这个减缩器的实例。例如,我的状态对象:`{mode:'mobile',flightTabs:{id1:{flights:{..},formData:{..},id2:{flights:{..},formData:{..},idN:}}`@petitomme我想你的意思是我可以在彼此之间组合的多个还原器?如果你有任何问题或bug,这可能是一个很难快速掌握的概念,别犹豫,把它们写在这里。