Redux在何处放置业务逻辑

时间:2019-12-03 17:25:45

标签: reactjs redux

此处是初学者的问题

假设我具有以下组件:

Page
-> Right panel
--> CommentList
----> Comment
Dialog

如果我点击Comment编辑按钮,我想打开一个对话框,其他不相关的组件也会使用该对话框。

谁应该负责更新商店以显示Dialog

  1. 商店中的逻辑Comment表示已通过调度COMMENT_EDIT动作对其进行了点击。然后,动作创建者知道必须显示对话框并处理单击:

ex(使用redux-thunk):

export const clickEdit = () => {
  return function(dispatch) {
    dispatch(showModal());
    return {
      type: COMMENT_EDIT
    };
  }
};
  1. Comment组件中的逻辑:评论组件分派两个动作,一个动作显示对话框,一个动作处理单击。

例如:

dispatch(showModal());
dispatch(clickEdit());
  1. 父组件中的逻辑:父组件(例如PageCommentList)侦听状态更新,然后分派适当的操作。

您通常做什么?是否有比这里提供的三种解决方案更好的解决方案?这三者之一真的很可怕,应该不惜一切代价避免吗?

0 个答案:

没有答案