Responsive design 如何在反应中传递道具给兄弟姐妹?

Responsive design 如何在反应中传递道具给兄弟姐妹?,responsive-design,reactjs,Responsive Design,Reactjs,我已经(一定要打开与Chrome的链接),现在我正试图在React中实现它。我还附上了一些布局的截图 该应用程序应该是典型的tab/nav应用程序,但由于响应性布局,在React中使用视图层次结构非常困难 我已经构建了一个名为Layout的React组件来抽象掉所有的布局内容。Layout还为renderLeft、renderRight、title和onTab提供了道具。然后,布局的子项被渲染到内容块中 简单的解决方案是将布局作为当前视图的子视图,并呈现您想要的任何内容。然而,这将打乱我的一些动

我已经(一定要打开与Chrome的链接),现在我正试图在React中实现它。我还附上了一些布局的截图

该应用程序应该是典型的tab/nav应用程序,但由于响应性布局,在React中使用视图层次结构非常困难

我已经构建了一个名为
Layout
的React组件来抽象掉所有的布局内容。Layout还为
renderLeft
renderRight
title
onTab
提供了道具。然后,布局的子项被渲染到内容块中

简单的解决方案是将布局作为当前视图的子视图,并呈现您想要的任何内容。然而,这将打乱我的一些动画。我希望在选项卡栏、标题和左右按钮周围有一个CSSTransitionGroup元素,在它们更改时为它们设置动画。因此,视图之间的
布局
元素必须保持不变,否则将为每个视图呈现一个新的CSSTransitionGroup元素
,这是不好的

现在的问题是,我有一个
Layout
组件,它的视图呈现为它的子视图(但是对于
App
组件来说有点像兄弟),但是视图需要为它的父布局指定
renderLeft
renderRight
title
!例如,在顶级的
App
组件中,渲染功能可能如下所示,我需要某种方法从
视图设置布局的
renderLeft

render(){
返回(
)
}
到目前为止,我唯一想到的似乎完全是错误的做法:

在顶级
App
组件中,为
renderLeft
renderRight
title
设置一个状态变量,然后
App
将这些变量传递给
布局
道具。现在,对于视图,传递一些函数,如
setRenderLeft
setRenderRight
setTitle
,这些函数将更改
App
状态,从而更改
布局。因此,我们可以在
组件willmount
中为每个视图调用这些函数

这看起来像是一次彻底的黑客攻击,似乎打破了单向数据流的整个概念。然而,我不知道还有什么办法可以做到!还有其他更合适的方法吗?在构建iOS应用程序时,我想到了委托的概念,但这是非常面向对象的,而不是非常FP的

有什么想法吗


你的问题有点难以准确说出问题所在,但是如果我是你,我会仔细阅读

用于在两个没有 父子关系,您可以设置自己的全局事件 系统。在componentDidMount()中订阅事件,在中取消订阅 componentWillUnmount(),并在收到事件时调用setState()。 通量模式是安排这种情况的可能方式之一

你想让兄弟姐妹与父母交谈并在那里交流,或者在全球层面上交流


希望这能有所帮助。

你的问题有点难以准确说出问题所在,但是如果我是你,我会仔细阅读

用于在两个没有 父子关系,您可以设置自己的全局事件 系统。在componentDidMount()中订阅事件,在中取消订阅 componentWillUnmount(),并在收到事件时调用setState()。 通量模式是安排这种情况的可能方式之一

你想让兄弟姐妹与父母交谈并在那里交流,或者在全球层面上交流


希望这能有所帮助。

问题在于我的布局视图需要从其子视图获取信息。我想我必须使用某种全球活动系统。但出于某种原因,这感觉很糟糕。数据流将不再是单向的…全局事件正是FB建议的。我不认为数据在链中是反向的,它只是从子结构推到结构的顶部,然后向下流动。我想是这样的。它只是更“纯粹”,这可能就是它感觉不舒服的原因。但这是有道理的。我不知道你还能怎么做…问题是我的布局视图需要从它的子视图获取信息。我想我必须使用某种全球活动系统。但出于某种原因,这感觉很糟糕。数据流将不再是单向的…全局事件正是FB建议的。我不认为数据在链中是反向的,它只是从子结构推到结构的顶部,然后向下流动。我想是这样的。它只是更“纯粹”,这可能就是它感觉不舒服的原因。但这是有道理的。我不知道你还能怎么做。。。