サーバーからデータを取得する方法と、データをプロットするために使用するライブラリに応じて、これを実装する方法はたくさんあります。私は可能な限り答えのジェネリックとして与えようとします。
getXAxisValueFromServer
という関数を用意して、サーバーから必要な値を非同期で要求し、コールバックで返すとします。アプリケーションが反応的で、サーバからRx.js observableのようなデータを受信すると、ロジックは同じになりますが、オブザーバブルのデータコールバックに入れます)
コンポーネントを動的にレンダリングするには、新しい値が到着するたびにコンポーネントを再レンダリングする必要があります。
反応成分がunder exactly two conditions: when its state
changes, and when its props
changeに再現される。
したがって、コンポーネントを動的に更新するには、データをstate
またはprops
に結びつける必要があります。
一般に、Reactを使用する場合、it's a good idea to keep presentation separated from logic。したがって、サーバーへのデータを受け取り、そのデータをstate
に保持する「スマートな」コンテナコンポーネントと、受け取ったデータをレンダリングする「ダム」プレゼンテーションコンポーネントを作成するのが最適なアプローチです。 data
という小道具を受け取るChart
コンポーネントとして実装されたデータを正確にプロットするグラフがあるとします。我々は今、定期的にデータをサーバーに照会しChart
を更新しますChartContainer
を実装する:
import React, { Component } from 'react';
import { getXAxisValueFromServer } from './server-api';
import Chart from './chart';
export default class ChartContainer extends Component {
constructor(props) {
super(props);
this.state = { data: null };
this.intervalHandle = null;
}
componentDidMount() {
this.intervalHandle = setInterval(() =>
getXAxisValueFromServer((data) => this.setState({ data })),
3000); //this is just an example - here we try to update
//the data every 3 seconds
}
render() {
return (
<Chart data={this.state.data} />
);
}
}
だからここに、私たちは、3秒ごとに新しいデータをサーバーに照会し、更新する例コンテナを作成しましたサーバーがそれを返すときに受信したデータをグラフ化します。これをユースケースに適応させることができます。
ようこそstackoverflow、どのグラフ化ライブラリを使用して投稿することができますか、そして/またはどのように現在グラフですか?私はそれが誰にとっても役立つと思う。 –
こんにちは、暖かい歓迎のおかげで。グラフ化にはVictory-Nativeを使用しています。 – Davezor