javascript - 有没有办法从另一个孩子调用子组件的函数?
问题描述
我正在为使用 ES6 JavaScript 构建的开源 React/Redux 应用程序做出贡献。我对 React/Redux 还很陌生,所以遇到了一些麻烦。
我有一个渲染两个不同 React 组件的父类。第一个组件包含一些有关事件的输入字段(称为 NewShift)。第二个组件是呈现这些事件的日历(称为索引)。
一旦用户填写输入字段并按下第一个组件中的按钮,我希望能够在第二个组件中重新呈现日历。如果重新渲染功能在日历组件中,我如何从输入字段组件(两个子组件)中调用它。
解决方案
每当组件状态发生变化时,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 接受。这个调度应该改变日历所连接的信息,这将迫使它更新和重新绘制。
推荐阅读
- c# - 安装 log4net 没有配置
- html - 无法在表单下放置文本
- regex - .htaccess URL 重写(从 URL 中删除文件夹)
- javascript - 如何在 Flatlist 下创建背景组件?
- python - 由于 from_db_value() 导致的 Django 3 对象评估错误
- oracle - 我们可以在 Oracle Sql Developer 客户端中添加自定义的 MIME 类型吗?有工具吗?
- javascript - webpack的不同文件夹中的公共路径存在问题
- python - 熊猫重命名多个 NaN 列名
- c++ - mingw32_gt_pch_use_address 中的内部错误,位于 config/i386/host-mingw32.c:190:MapViewOfFileEx:尝试访问无效地址
- javascript - lodash.js 选择像 mysqls `in`