不同的商店实例

时间:2017-08-10 09:48:44

标签: reactjs redux

人。

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

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

对不起,这是我在这里的第一次体验,如果有人可以,请帮助。

1 个答案:

答案 0 :(得分:1)

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

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

数据类的示例:

pageData.js

export const pageData = {
  pageNumber: 1,
  pageSize: 30,
};

userData.js

export const userData = {
  language: 'English',
  timezone: 'ESTERN',
};

然后在创建商店时合并这些类:

store.js

import pageData from .../pageData;
import userData from .../userData;

const defaultState = {
  pageData,
  userData,
};

export const store = createStore(rootReducer, defaultState));

您需要修改pageData的reducer也需要具有名称pageData。同样适用于userData

完成所有这些操作后,您必须mapStateToProps()将您的组件添加到您希望他们订阅的数据中。

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

function mapStateToProps (state) {
  return {
    pageData: state.pageData
  };
}

我建议您查看redux documentation以了解如何设置 mapStateToProps()

完成所有这些操作后,您可以console.log(this.props)看到您的数据部分在那里并且分开。