Reduxアプリケーション内で使用されるReactコンポーネント内にD3(v3)チャートがあります。私のReduxストアの変更を反映するためにD3チャートの更新を処理する最善の方法は何ですか?React/Redux内のD3チャートの更新
は今のところ、私はそうとも呼ばれるグラフの描画とすぐcomponentWillUpdate
として、前のチャートの除去を呼び出す関数を呼び出すリアクトコンポーネント内の機能を持っている:
export default class Chart extends Component {
componentWillUpdate(nextProps) {
this.removePreviousChart();
this.drawChart(nextProps.chartData);
}
removePreviousChart(){
const chart = document.getElementById('chart');
while(chart.hasChildNodes())
chart.removeChild(chart.lastChild);
}
}
drawChart() {
//appends an svg to #chart html element and draws a d3 Chart
}
render(){
this.drawChart();
return(<div id='chart' />)
}
}
どれを代替アプローチ、擬似コード、アイデア、またはこの質問を改善する方法に関するフィードバックは高く評価されます。
新しいコンポーネントおよび/または状態が受信されている場合にのみ、「componentWillUpdate」は起動しませんか?私はそれを介して 'componentWillReceiveProps'を使う利点が何であるか分かりません。明確にすることはできますか? – Matt16749
@ Matt16749が私の答えを更新しました。それを一度チェックする –