javascript - 当从其他组件分派(dispatch)操作时触发函数

标签 javascript reactjs redux react-redux

我正在开发一个reactjs应用程序并使用redux。我有两个组件。说出组件 A组件 B。在组件 A 中,我有一个表。当我单击任何行时,我会调度一个操作,并将该行的数据作为该操作的参数。每次我单击一行时,都会调度此操作。我想每当单击一行并调度该操作时就触发组件 B 中的一个函数。我该怎么做?

通常我们通过 Action 调度来改变reducer中的数据,然后使用该数据作为其他组件中的状态。但在这里,我想每当在组件 A 的表格中单击一行时,就触发组件 B 中的函数。

最佳答案

单击行时在 A 中调度一个操作,将 bool 值设置为 true。然后使用 mapStateToProps 在 Redux 状态更改时重新渲染组件。然后对 componentDidUpdate() 中所需的函数进行条件调用:

class B extends React.Component {
  componentDidUpdate() {
    const { rowClickedInAComponent } = this.props;
    if ( rowClickedInAComponent ) {
      functionToBeCalled();
    }
  }
  render() {
  }
}

const mapStateToProps = (state) => ({
  rowClickedInAComponent: rowClickedInAComponent
  // boolean here, you could pass any info such as which row was clicked
});

export default connect(mapStateToProps)(ListingPage);

如果您需要进一步说明,请发表评论。

关于javascript - 当从其他组件分派(dispatch)操作时触发函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46804729/

相关文章:

javascript - 带有 Websockets 的 Redux-thunk

javascript - 如何使用单个 HTML 按钮切换 React 小部件的可见性

javascript - jQuery 库干扰导航栏和可过滤投资组合的 Javascript 小问题 - bootstrap 3

javascript - __utm cookie 的 Google Analytics 字符编码

javascript - 如何在 Katex 中创建换行符?

javascript - 一旦单击 React,单选按钮的状态将不会保留

reactjs - 无法专注于 React 输入

reactjs - Redux - 为什么在根状态下加载所有内容

reactjs - 我应该下载所有数据进行 redux 还是根据需要请求它们?

javascript - 在服务器端渲染中使用 redux 和 redux-persist