reactjs - React - 如何根据点击将子组件连接/断开与父数据的连接?
问题描述
父组件向子组件(显示它)提供数据(有多个子组件)。子组件有 2 个按钮连接和断开连接。连接时应接收并显示数据,单击断开连接时应断开数据连接。
我会怎么做:子调用父中的方法进行连接/断开连接,然后我将在父状态中有一个标志,并基于该标志渲染有或没有数据的子,然后在子内部我渲染道具或 null 如果没有提供道具。
这意味着如果我有 10 个子组件,我需要 10 个看起来不太好的标志,所以我的第二个想法是:
让标志洞察孩子和触发连接/断开连接的方法,根据是否提供道具进行渲染
我的问题是,是否有一种良好的实践反应方式将孩子连接到父母数据流/停止数据流,而不总是将数据传递给孩子,而只是根据孩子是否“想要”连接来渲染/不渲染它?谢谢!
解决方案
您是否尝试过使用 Redux 或 Context API?两者非常相似,它应该得到你想要的。他们基本上使用 1 个商店(认为它们有多个状态连接到 1 个商店)并且您从子组件获取数据。
获取您的数据后,您可以检查用户是否登录并根据此数据放置您的按钮。
如果我不够清楚,请随时提出任何问题。
Redux 和 Context API 的官方文档还有: https://redux.js.org/introduction/getting-started https://tr.reactjs.org/docs/context.html
推荐阅读
- php - CodeIgniter PHP:仅当 URL 段实际存在时如何回显该段
- java - 在 Thymeleaf 中巩固一对多关系
- laravel - Laravel CSRF 保护如何保护自己免受子域 cookie 覆盖攻击?
- scala - 在 Scala 中,为什么无法从类型别名或依赖类型推断 TypeTag?
- angular - 反应式表单没有标记为无效,即使它的控件被标记为无效,为什么?
- python - 如何用python提取一些没有html标签的文本
- firefox - Firefox 构建给出“[Parent][RunMessage] 错误:通道关闭:发送/接收太晚,消息将丢失”
- python - 通过 API 获取 OneNote 时间戳
- java - Android MediaPlayer:Android Q 及更高版本中的文件访问
- javascript - 当我的 JavaScript 依赖于以前加载的脚本中的对象时,我如何`eslint`?