首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何将Reselect + Redux应用程序集成?

如何将Reselect + Redux应用程序集成?
EN

Stack Overflow用户
提问于 2018-08-14 06:44:09
回答 1查看 265关注 0票数 0

我正在实现React + Redux应用程序,并发现了将Reselect集成到我的应用程序中的困难;

下面是我的密码

store.js

代码语言:javascript
复制
  import "regenerator-runtime/runtime";
  import { createStore, applyMiddleware } from 'redux';
  import createSagaMiddleware  from 'redux-saga';
  import { createLogger } from 'redux-logger';
  import rootReducer from '../_reducers';
  import rootSaga from '../_sagas';

  const loggerMiddleware = createLogger();

  const sagaMiddleware = createSagaMiddleware()

  export const store = createStore(

      rootReducer,
      applyMiddleware(
          sagaMiddleware,
          loggerMiddleware
      )

  );

  sagaMiddleware.run(rootSaga)

action.js

代码语言:javascript
复制
  import { alertConstants } from '../_constants';

  export const alertActions = {
      successRequest,
      successResponse,
  };

  function successRequest() {
      return { type: alertConstants.SUCCESS_REQUEST };
  }

  function successResponse(message) {
      return { type: alertConstants.SUCCESS_RESPONSE, message };
  }

reducer.js

代码语言:javascript
复制
  import { alertConstants } from '../_constants';

  export function alert(state = {}, action){
    switch (action.type) {
     case alertConstants.SUCCESS_RESPONSE:
       return {
           message: action.message
       };
       default:
           return state 
    }
  }

这可能是我的selector.js,但它行不通!

代码语言:javascript
复制
  import { createSelector } from 'reselect';

  const alertMessage = state => state.alert

  export const makeGetAlertMessage = createSelector(
     alertMessage,
     message => state.alert.message
  )

错误:未定义ReferenceError:状态未定义

我应该有一个名为selector.js的文件,并为这个还原器创建一个选择器,有人能帮我为这个特定的方法编写选择器吗?

PS:我已经提到了Reselect Documentation,但我无法使它工作。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-08-14 07:33:05

根据我在文档中所读到的内容,createSelector将使用其函数的最后一个参数在创建选择器中传递前面的参数。

所以这意味着你在这里的论点,将是alertMessage的结果。

代码语言:javascript
复制
import { createSelector } from 'reselect';

const alertMessage = state => state.alert

export const makeGetAlertMessage = createSelector(
  alertMessage,
  alert => alert
)

如果你只想得到alert,你可以只返回那个。我认为您在文件中所指出的关于税收的示例清楚地显示了预期输入是什么,以及您将收到什么作为您的功能的输入。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51835209

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档