首页 > 解决方案 > 有没有办法从另一个孩子调用子组件的函数?

问题描述

我正在为使用 ES6 JavaScript 构建的开源 React/Redux 应用程序做出贡献。我对 React/Redux 还很陌生,所以遇到了一些麻烦。

我有一个渲染两个不同 React 组件的父类。第一个组件包含一些有关事件的输入字段(称为 NewShift)。第二个组件是呈现这些事件的日历(称为索引)。

一旦用户填写输入字段并按下第一个组件中的按钮,我希望能够在第二个组件中重新呈现日历。如果重新渲染功能在日历组件中,我如何从输入字段组件(两个子组件)中调用它。

标签: javascriptreact-redux

解决方案


每当组件状态发生变化时,React 都会重新渲染组件。如果您只使用 React,这意味着将更改的值传递给父组件的状态以强制重新渲染。然而,Redux 让你更容易做到这一点,因为它的 'Store' 用作全局状态。您可以通过更改商店中的适当变量来强制重新渲染。

鉴于您的情况:按钮应该在它的 onClick 属性中得到这个: onClick={() => dispatchNewCalendarInfo(payload)}

dispatchNewCalenderInfo 也应该由组件导入: import { dispatchNewCalendarInfo } from './redux/path/to/post/actions.js';并连接到它:export default connect(()=>({}), { dispatchNewCalendarInfo })(Component);。请注意,您还需要为此从“react-redux”导入连接。

当然,dispatchNewCalendarInfo 应该出现在 actions.js 路径中,并被 store reducer 接受。这个调度应该改变日历所连接的信息,这将迫使它更新和重新绘制。


推荐阅读