首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该通过组件或redux-thunk中间件获取状态数据吗?反应余量

我应该通过组件或redux-thunk中间件获取状态数据吗?反应余量
EN

Stack Overflow用户
提问于 2016-11-21 09:39:29
回答 2查看 249关注 0票数 0

它说

多做行动创造者,少做减速器。

所以,我应该:

  1. 通过组件传递当前状态数据? this.props.fileActions.addFile( Object.keys(this.props.fileById).length )
  2. 或者通过redux-thunk获取动作创建者内部的状态数据? export const addFile(){ return (dispatch, getState) =>{ const filelength = Object.keys(getState().fileById).length; dispatch(addFileAction(filelength)) } }

我来自棱角世界,在大多数情况下,我将数据存储在服务中,调用Service.addFile(),而files.length已经存储在服务中,因此不需要传递Service.addFile(files.length)

EN

回答 2

Stack Overflow用户

发布于 2016-11-22 02:49:02

更喜欢后一种用法。

从组件中将params传递给操作创建者将使您的组件与数据耦合,这意味着您可能无法重用该组件。

票数 0
EN

Stack Overflow用户

发布于 2016-11-22 10:54:09

对于用例,似乎应该在还原器中这样做。

代码语言:javascript
运行
复制
function addNewFile() {
  return {
    type: 'ADD_NEW_FILE'
  }
}

function filesReducer(state, action) {
  if(action.type === 'ADD_NEW_FILE') {
    const newId = state.filesById + 1;
    return {
      filesById: state.filesById.concat(newId),
      entities: Object.assign({}, state.entities, {
        [newId]: {name: `File ${newId}`}
      })
    };
  }
  // some other action handlers
  return state;
}

您将在某些操作中修改状态。这正是减速机应该做的。

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

https://stackoverflow.com/questions/40716983

复制
相关文章

相似问题

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