此处是初学者的问题
假设我具有以下组件:
Page
-> Right panel
--> CommentList
----> Comment
Dialog
如果我点击Comment
编辑按钮,我想打开一个对话框,其他不相关的组件也会使用该对话框。
谁应该负责更新商店以显示Dialog
Comment
表示已通过调度COMMENT_EDIT
动作对其进行了点击。然后,动作创建者知道必须显示对话框并处理单击: ex(使用redux-thunk
):
export const clickEdit = () => {
return function(dispatch) {
dispatch(showModal());
return {
type: COMMENT_EDIT
};
}
};
Comment
组件中的逻辑:评论组件分派两个动作,一个动作显示对话框,一个动作处理单击。例如:
dispatch(showModal());
dispatch(clickEdit());
Page
或CommentList
)侦听状态更新,然后分派适当的操作。 您通常做什么?是否有比这里提供的三种解决方案更好的解决方案?这三者之一真的很可怕,应该不惜一切代价避免吗?