Reactjs 对来自其他组件的操作调用组件方法
当单击组件B中的按钮时,调用组件A中的方法的最佳方式是什么 这两个组件彼此分离。 我相信我可以使用一些非常简单的实现,比如: 组件A发送操作:Reactjs 对来自其他组件的操作调用组件方法,reactjs,redux,react-redux,command-pattern,Reactjs,Redux,React Redux,Command Pattern,当单击组件B中的按钮时,调用组件A中的方法的最佳方式是什么 这两个组件彼此分离。 我相信我可以使用一些非常简单的实现,比如: 组件A发送操作: {action: "BUTTON_CLICKED", value: true} 减速器捕捉动作: case "BUTTON_CLICKED": { const newState = { ...state }; newState.clicked = true; return newState; }
{action: "BUTTON_CLICKED", value: true}
减速器捕捉动作:
case "BUTTON_CLICKED": {
const newState = { ...state };
newState.clicked = true;
return newState;
}
组件B收听道具:
componentWillReceiveProps = (newProps) => {
if (newProps.clicked) {
someMethod()
}
};
和重置标志:
someMethod = ()=>{
dispatch({action: "BUTTON_CLICKED", value: false})
}
但这种方式是错误的
有没有办法在react/redux中实现命令模式
谢谢您的提问和解释是最好的模式。您已经编写了正确的代码,我认为您不需要更改它
请看,您是在单一真相来源的帮助下使用Redux的。因此,根据我的观点,你使用的任何东西都是正确的 你所要求并试图解释的是最好的模式。您已经编写了正确的代码,我认为您不需要更改它 请看,您是在单一真相来源的帮助下使用Redux的。因此,根据我的观点,你使用的任何东西都是正确的 “单击组件B中的按钮时,调用组件A中方法的最佳方式是什么?” 我将使用事件总线消息传递在模块之间进行通信。您在一个模块和另一个模块中发出事件,侦听特定事件 例如: 这是一篇与VueJS相关的文章,但它应该概述idea。单击组件B中的按钮时,调用组件A中方法的最佳方式是什么 我将使用事件总线消息传递在模块之间进行通信。您在一个模块和另一个模块中发出事件,侦听特定事件 例如:
这是一篇与VueJS相关的文章,但它应该提供有关idea的概述。您列出的方法似乎是正确的。Redux内置了此功能。您可以使用来侦听更改
componentWillMount() {
this.unsubscribe = store.subscribe(this.onStoreChange);
}
componentWillUnmount() {
this.unsubscribe();
}
onStoreChange = () => {
const newState = store.getState();
// Check if target value has changed here
}
你提出的方法似乎是正确的。Redux内置了此功能。您可以使用来侦听更改
componentWillMount() {
this.unsubscribe = store.subscribe(this.onStoreChange);
}
componentWillUnmount() {
this.unsubscribe();
}
onStoreChange = () => {
const newState = store.getState();
// Check if target value has changed here
}
你为什么说这是错的?真的吗?为什么组件B应该知道组件A中的任何按钮?是的,redux就是这样工作的。在你的应用程序中,这是唯一的真实来源。是的,组件B知道组件A的变化,但是通过redux商店。代码看起来很干净,我不知道你的问题。请再次阅读React的文档,为什么你说这是错误的?真的吗?为什么组件B应该知道组件A中的任何按钮?是的,redux就是这样工作的。在你的应用程序中,这是唯一的真实来源。是的,组件B知道组件A的变化,但是通过redux商店。代码看起来很干净,我不知道你的问题。请再次阅读React的文档。你是对的,事件总线是最好的方式,但我认为redux实现了一些事件总线。你是对的,事件总线是最好的方式,但我认为redux实现了一些事件总线。