reactjs - React-Hooks:跨独立组件监听事件
问题描述
我的应用程序具有以下示例结构:
<App>
--<Users>
------<UserList/>
--</Users>
--<UserManagement>
------<UserList/>
------<AddUser/>
--</UserManagement>
</App>
在<UserManagement>
我使用状态变量来监听完成的突变,<AddUser>
以便在突变完成<UserList>
后直接更新。
现在,如果我添加一个用户并转到 ,<UserList>
则不会重新渲染,因为它不知道数据库中的更改。我不知道 useEffect 钩子应该听什么。
我考虑过使用<App>
. 但我不确定这是否是正确的解决方案。我正在使用一个简单的 sqlite 数据库,不提供任何订阅工具或某事。
有人可以给我一个提示吗?
我希望它可以理解,否则我将提供代码。
谢谢!
解决方案
有两种方法:
您可以将相同的状态变量传递给表示用户列表更改的组件。使用 useEffect 挂钩来侦听此变量以再次从数据库中获取用户列表。
创建另一个状态变量,基本上与您的数据库同步。您将此变量传递给组件。添加用户时,您将添加到 sql 数据库和此变量。您还可以将相同的变量传递给以显示用户。请记住,这种方法基本上会复制用户列表。
推荐阅读
- c - 想检查信用卡号码是否有效
- r - R Markdown 中的统计结果与 Knit 输出不同(所有格式:Word、HTML、PDF)
- c# - 如何使用 PointsF 获得新区域的边界?
- jquery - TinyMCE 在动态生成的文本区域上不可点击和编辑
- python - 如何在 keras 神经网络中正确设置 input_shape?
- google-cloud-platform - 在混合环境(GCP 应用和本地)中使用 Google OAuth2 和 OpenId Connect
- php - 什么是 PHP 的 gmmktime() 的 Dart/Flutter 等价物?
- python - 如何将数据框中的 Unicode 列转换为整数?
- javascript - 在表单中创建输入的按钮出现问题
- flutter - 颤振列表错误参数类型'List'不能分配给参数类型'String'