0
我正在創建一個在React和Electron中的應用程序。我正在嘗試製作一個打開三個TCP套接字的組件,並在全部連接時渲染子組件。它大致如下所示(簡化):關閉時通知孩子的連接狀態的父組件
export class Device extends Component {
static propTypes = {
port: PropTypes.number.isRequired,
host: PropTypes.string.isRequired
};
render() {
const { port, host, children } = this.props;
return (
<div className="device-mount">
<TCPSocket name="commands" port={port} host={host} />
<TCPSocket name="messages" port={port} host={host} />
<TCPSocket name="routines" port={port} host={host} />
{children}
</div>
);
}
}
的TCP套接字將派出上componentDidMount
,CONNECTED
成功連接時,和所述DISCONNECTED
事件CONNECT_ATTEMPT
。
我發現了一個「不清潔」的解決方案,只需製作一個連接事件,它將使用單個組件並自行觸發所有事件,然後在全部連接後綁定一個處理程序。然而,這似乎不是很好的做法,因爲它不可模塊化。
我的目標是在所有這些TCPSocket
組件都已觸發其CONNECTED
事件時通知父組件。首先想到的是child context,但實際上,我希望在相反的方向。
如何通知父組件關於多個子組件狀態?