【问题标题】:Passing props on other React Component在其他 React 组件上传递 props
【发布时间】:2017-06-12 18:05:50
【问题描述】:

我想将 props 传递给 React 组件(没有父级也没有后裔)。

例子:

<aside>
  <Navigation />
</aside>
<main>
  <Video />
</main>

onClick 在我的Navigation 上的&lt;a&gt; 元素上,我想更新我的Video 组件状态(src)。

我知道我可以更改子组件的状态,但是对于这种情况.. :/

谁能帮帮我?

感谢社区!

【问题讨论】:

  • 阅读 refs,您可以引用父组件,然后将其作为 props 传递给另一个子组件

标签: javascript reactjs


【解决方案1】:

将单击处理程序传递给 Navigation,该处理程序在父组件(包含 Navigation 和 Video)上调用 setState。您要更改的内容应该是 Video 上的道具。 setState 将导致 Video 使用新的 prop 重新渲染。

【讨论】:

  • 嗨 Rikki,我不太了解您的解决方案。我的 组件(在导航中)可以访问 App 容器吗? (导航和视频的父级?)
【解决方案2】:

你可以这样设置状态

1 创建一个函数来设置父组件中的状态。

2 像道具一样传递给&lt;Navigation /&gt;

3 在您的&lt;Navigation /&gt; 中使用此道具 onclick

【讨论】:

【解决方案3】:

一种方法是将 redux 与 react 结合使用。虽然 redux 是一个相当大的学习步骤,但一旦你掌握了它,它将帮助你轻松解决此类问题。

为了让您大致了解如何使用 redux 组合做出反应,这里有一个非常简化的工作流程。

  • 所有组件都从存储在 redux 存储中的状态获取数据以进行显示。
  • 当在其中单击某些内容或以某种方式更改时,导航组件会将操作发送到 redux 存储。
  • redux 存储中的 reducer 将识别这些操作并更改 redux 存储中的状态
  • 更改完成后,所有组件都会使用来自 redux 存储的新数据重新呈现

【讨论】:

    猜你喜欢
    • 2021-09-06
    • 2019-04-03
    • 2015-12-30
    • 1970-01-01
    • 2017-11-17
    • 2017-09-14
    • 2021-06-16
    • 2019-06-08
    • 1970-01-01
    相关资源
    最近更新 更多