Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/reactjs/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Reactjs 仅数据会影响基于状态的重新渲染的组件?_Reactjs - Fatal编程技术网

Reactjs 仅数据会影响基于状态的重新渲染的组件?

Reactjs 仅数据会影响基于状态的重新渲染的组件?,reactjs,Reactjs,我是新手,所以请原谅我的问题 我有一个普通的ol'JS对象,它包装了一个WebSocket,并根据通过套接字接收到的消息(例如聊天中的当前消息集)公开状态。在Angular或Polymer(或WinForms和WPF)中,当新数据进入时,我会使用标准协议发送通知,让数据绑定的客户端知道状态已更改,并且这些客户端将发生重新呈现 在这种情况下,我会通过扩展WS-wrapper类中的React.Component来做同样的事情,只是它没有UI(它只是从WS-wrapper上的消息中收集到的状态缓存),

我是新手,所以请原谅我的问题

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

在这种情况下,我会通过扩展WS-wrapper类中的React.Component来做同样的事情,只是它没有UI(它只是从WS-wrapper上的消息中收集到的状态缓存),所以它会在呈现时返回null,我不清楚它是否在DOM中。此外,我不知道如何使WS-wrapper对象的父元素或对等元素的UI随着状态的变化而更新

使用纯数据组件的方法是什么?在我深入Redux之前,我正试图让自己的头脑做出反应,所以希望这里的答案不需要选择通量实现


谢谢

听起来包装器JS对象应该是应用程序的“全局”状态。无论您将其包含在React中的何处(包含香草React的顶级组件,或在Redux中的存储)

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

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


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

Wait。。没有渲染?使用React有什么意义?我想你可能会对React的用途感到困惑。它的唯一目的是作为状态更改的结果来呈现内容(可能是也可能不是属于React应用程序树的状态)。我理解React的用途——我得到的是一个普通的o'JS对象,其中包含状态,我想用它来重新呈现React树中显示该状态的部分。如果POJO不是React组件,我如何做到这一点?在状态改变时调用ReactDOM.render。或者,不需要调用
setState
,只需在每次外部状态改变时调用
ReactDOM.render
(这与redux的操作非常接近)