仅限数据可以影响基于状态的重新呈现的React组件?

时间:2017-07-11 16:11:48

标签: reactjs

我是React的新手,请原谅新手问题。

我有一个简单的'包含WebSocket的JS对象,并根据它通过套接字接收的消息公开状态,例如,聊天中的当前消息集。在Angular或Polymer(或WinForms和WPF)中,当新数据进入时,我会使用标准协议发送通知,让数据绑定客户端知道状态已更改,并且会为这些客户端重新呈现。

在这种情况下我通过在我的WS包装器类中扩展React.Component来做同样的事情,除了它没有UI(它只是从中收集到的状态的缓存)流过WS的消息,因此它将从渲染中返回null,并且我不清楚它是否在该点停留在DOM中。此外,我不确定如何从WS包装器对象的父元素或对等元素更新UI,因为它的状态更改。

具有仅数据组件的React方法是什么?在我深入研究Redux之前,我试图了解React,所以希望这里的答案不需要采用Flux实现。

谢谢!

1 个答案:

答案 0 :(得分:2)

听起来好像包装器JS对象应该是App“全局”状态。无论你在React(包含vanilla React的顶级组件或Redux中的商店)中包含它的位置如何。

假设您将其作为顶级组件的状态,那么当新数据进入时,您需要做的就是setState(newData)

应该在保存状态的顶级组件中描述由此数据驱动的所有UI。所有儿童组件都可以是只读的。

当顶级组件更改其状态时,将使用新的只读道具重新呈现所有子项。