反应:在非分层组件之间传递数据吗?

时间:2018-08-19 09:39:45

标签: reactjs

React的新手,对于在组件之间传递数据有一个非常基本的问题。我所做的所有研究都假设组件(父/子,父/孙,兄弟姐妹)之间存在层次关系。两个问题:

能否在不在同一“树”中的两个组件(两个独立的组件)之间传递数据?

我正在使用React和React-Dom。是否可以在React中直接完成,而无需使用其他库(Redux,Mobx等)?

JJ /西雅图

2 个答案:

答案 0 :(得分:1)

React提供了一个名为Portals

的实用程序

根据API定义:

  

门户提供了一种将子级呈现到DOM节点中的一流方法   在父组件的DOM层次结构之外。

有关此的更多信息:

https://reactjs.org/docs/portals.html

答案 1 :(得分:0)

在不同树中的两个组件之间传递数据的常见做法是创建一个EventBus。

https://github.com/arkency/event-bus

import EventBus from 'eventing-bus'
var callback = function(name) { console.log("Hello, " + name + "!"); };
EventBus.on("exampleEventName", callback);

import EventBus from 'eventing-bus';
EventBus.publish("exampleEventName", "Watson");