Angularで親コンポーネントから子コンポーネントにデータを渡すときのHTMLエラー

ハンス

ここでは、親から子にデータを渡し、それらのデータを使用してグラフを描画しようとしています。これは子コンポーネントにある私のグラフ描画方法ですcreateGraph(divName, chartDataInfo)。ここでは2つのグラフを描画しようとしています。

  export class DashboardComponent implements OnInit{
      lineChart = ['line_chart1', 'line_chart2', 'line_chart3'];
      value = ['33.5M', '67.9M', '90.9M', '09.9M'];
      names = ['Bookings', 'Modifications','cancellations',  'Revenue' ];
      bookingInfo = [];
      mdfInfo = [];

      ngOnInit() {
         this.getInfo();
         this.getBookingInfo();
        }

      getBookingInfo() {
              const params = [];
              params.push({code: 'dateType', name: 'BOOKING'});
              params.push({code: 'fromDate', name: '2019-01-01'});
              params.push({code: 'toDate', name: '2019-12-31'});

              this.ServiceHandler.getTxnInfo([], params).subscribe(
                bookings => {
                  this.bookingInfo = bookings.responseObj.txnValues;
                  console.log(this.bookingInfo);
              });
          }

       getInfo(){
        const params = [];
        params.push({code: 'fromDate', name: '2019-01-01'});
        params.push({code: 'toDate', name: '2019-12-31'});
        this.dashboardServiceHandler.getMdfInfo([], params).subscribe(
          modifications => {
            this.mdfInfo = modifications.responseObj.txnValues;
            this.modificationTtcSum = modifications.responseObj.ttcSum;
           });
      }

    }

これは私のdashboard.component.htmlです

<app-summary-chips [lineChart]="lineChart[0]" [value] = "value[0]" [name] = "names[0]" [mdfInfo] = "mdfInfo"></app-summary-chips>
<app-summary-chips [lineChart]="lineChart[1]" [value] = "value[1]" [name] = "names[1]" [bookingInfo] = "bookingInfo"></app-summary-chips>

これは私の子コンポーネントです。そのため、this.createGraph(this.lineChart, this.mdfInfo);内部で2回ngOnChanges(changes: SimpleChanges)呼び出しましたが、両方のチャートが表示されないようにします。this.createGraph(this.lineChart, this.mdfInfo)内部ngOnChanges(changes: SimpleChanges)1回だけ呼び出し、同時に<app-summary-chips>セレクターを1回だけ使用すると、1つのチャートが描画されます。その理由は何ですか?

export class SummaryChipsComponent implements OnInit {
  @Input('lineChart') lineChart: string;
  @Input('value') value: string;
  @Input('name') name: string;
  @Input() bookingInfo = [];
  @Input()  mdfInfo = [];

  ngOnChanges(changes: SimpleChanges) {
    console.log(this.bookingInfo);
    console.log(this.mdfInfo );
    this.createGraph(this.lineChart, this.mdfInfo);
    this.createGraph(this.lineChart, this.bookingInfo);
    }

   createGraph(divName, chartDataInfo) {
    am4core.useTheme(am4themesAnimated);

    const chartNameChartTTV = am4core.create(divName, am4charts.XYChart);
    chartNameChartTTV.width = am4core.percent(100);
    chartNameChartTTV.height = am4core.percent(100);
    console.log(this.bookingInfo);
    chartNameChartTTV.padding(0, 0, 0, 0);
    chartNameChartTTV.data = [];

    for (let i = 0; i < chartDataInfo.length; i++) {
      const booking = chartDataInfo[i];
      console.log(booking);
      chartNameChartTTV.data.push({date: booking.time, value: booking.ttc});
    }

    chartNameChartTTV.colors.list = [
      am4core.color('rgba(4, 69, 142, 1)'),
    ];

    // Create axes
    const dateAxis = chartNameChartTTV.xAxes.push(new am4charts.DateAxis());
    const valueAxis = chartNameChartTTV.yAxes.push(new am4charts.ValueAxis());

    valueAxis.renderer.grid.template.disabled = true;
    valueAxis.renderer.labels.template.disabled = true;
    dateAxis.renderer.grid.template.disabled = true;
    dateAxis.renderer.labels.template.disabled = true;

// Create series
    const series = chartNameChartTTV.series.push(new am4charts.LineSeries());
    series.dataFields.valueY = 'value';
    series.dataFields.dateX = 'date';
    series.tooltipText = '{value';
    series.fillOpacity = 1;
    series.strokeWidth = 2;
    series.minBulletDistance = 15;

  }

}

これは私の要約です-chips.component.html

<div class="l-content-wrapper c-summary-chip oh" >
  <div class="c-summary-chip__value">{{value}}</div>
  <div class="c-summary-chip__txt">{{name}}</div>
  <div id= "{{lineChart}}" class="c-summary-chip__graph ">
  </div>
</div> 
アルン・モハン

ifチェック内にコードをラップしてみてください

createGraph(divName, chartDataInfo) {

    if (divName && chartDataInfo.length) {}
}

ngOnChangesは非同期イベントであるため、変更内の関数を呼び出すときにすべてのパラメーターが存在するという保証はありません。

また、デバッグのために、次のようにconsole.logを指定します。

createGraph(divName, chartDataInfo) {
    console.log(divName, chartDataInfo);

    if (divName && chartDataInfo) {}
}

これにより、関数を呼び出すときに必要なすべてのデータがそこにあることを確認できます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

子から親コンポーネントAngularにデータを渡す方法

分類Dev

子から親コンポーネントAngularにデータを渡す方法

分類Dev

Vueで子から親コンポーネントにデータを渡す

分類Dev

Angular @ ViewChildで子コンポーネントから親コンポーネントにデータを渡す2つの引数が必要です

分類Dev

Mapを使用して親コンポーネントから子コンポーネントにデータを渡すときのAngularExpressionChangedAfterItHasBeenCheckedError

分類Dev

親から子コンポーネントにデータを渡すことができません

分類Dev

親コンポーネントからAngular2 +のcomponentFactoryResolverで作成された子コンポーネントにObservableデータを渡します

分類Dev

親コンポーネントからネストされた子コンポーネントにAngularでデータを渡す

分類Dev

ReactJS:APIからデータをフェッチした直後に、親コンポーネントから子コンポーネントにデータを渡すときに問題が発生します。(機能コンポーネントのみ)

分類Dev

React | 親から子コンポーネントにデータを渡す

分類Dev

子コンポーネントから親コンポーネントにイベントを渡すAngular 5

分類Dev

Angular 4で親コンポーネントから子コンポーネントにデータを渡す方法

分類Dev

Angular4で子コンポーネントから親コンポーネントにデータを渡す方法

分類Dev

親から子のangular.jsコンポーネントにデータを渡す

分類Dev

子コンポーネントから親コンポーネントにボタン値を渡すことができません

分類Dev

角度8の@inputデコレータを使用して、親コンポーネントから子コンポーネントにデータを渡します

分類Dev

Reactで親コンテナから子コンポーネントにAPIデータを渡す

分類Dev

ReactJSで子コンポーネントからその親にデータを渡す方法は?

分類Dev

子から親コンポーネントに値を渡す

分類Dev

反応ネイティブで子コンポーネントから親コンポーネントにデータを渡しますか?

分類Dev

ボタンが親コンポーネントをクリックしたときに子コンポーネントから親コンポーネントにデータを渡す方法

分類Dev

子コンポーネントから子コンポーネントにデータを渡す Vuejs 2

分類Dev

NativeScript - 親コンポーネントから子コンポーネントにコンテンツを渡す

分類Dev

vuejsの親コンポーネントから子コンポーネントにメソッドを渡す

分類Dev

親から子コンポーネントにデータを送信するためのangularの@inputとviewchild

分類Dev

Angular2-親コンポーネントでクリックされたボタンで親コンポーネントから子コンポーネントにデータを渡します

分類Dev

子コンポーネントの動的コンポーネントの場合、子から親にデータを渡す方法

分類Dev

子コンポーネントから親コンポーネントへのデータの受け渡し

分類Dev

親コンポーネントから子コンポーネントへのデータの受け渡し

Related 関連記事

  1. 1

    子から親コンポーネントAngularにデータを渡す方法

  2. 2

    子から親コンポーネントAngularにデータを渡す方法

  3. 3

    Vueで子から親コンポーネントにデータを渡す

  4. 4

    Angular @ ViewChildで子コンポーネントから親コンポーネントにデータを渡す2つの引数が必要です

  5. 5

    Mapを使用して親コンポーネントから子コンポーネントにデータを渡すときのAngularExpressionChangedAfterItHasBeenCheckedError

  6. 6

    親から子コンポーネントにデータを渡すことができません

  7. 7

    親コンポーネントからAngular2 +のcomponentFactoryResolverで作成された子コンポーネントにObservableデータを渡します

  8. 8

    親コンポーネントからネストされた子コンポーネントにAngularでデータを渡す

  9. 9

    ReactJS:APIからデータをフェッチした直後に、親コンポーネントから子コンポーネントにデータを渡すときに問題が発生します。(機能コンポーネントのみ)

  10. 10

    React | 親から子コンポーネントにデータを渡す

  11. 11

    子コンポーネントから親コンポーネントにイベントを渡すAngular 5

  12. 12

    Angular 4で親コンポーネントから子コンポーネントにデータを渡す方法

  13. 13

    Angular4で子コンポーネントから親コンポーネントにデータを渡す方法

  14. 14

    親から子のangular.jsコンポーネントにデータを渡す

  15. 15

    子コンポーネントから親コンポーネントにボタン値を渡すことができません

  16. 16

    角度8の@inputデコレータを使用して、親コンポーネントから子コンポーネントにデータを渡します

  17. 17

    Reactで親コンテナから子コンポーネントにAPIデータを渡す

  18. 18

    ReactJSで子コンポーネントからその親にデータを渡す方法は?

  19. 19

    子から親コンポーネントに値を渡す

  20. 20

    反応ネイティブで子コンポーネントから親コンポーネントにデータを渡しますか?

  21. 21

    ボタンが親コンポーネントをクリックしたときに子コンポーネントから親コンポーネントにデータを渡す方法

  22. 22

    子コンポーネントから子コンポーネントにデータを渡す Vuejs 2

  23. 23

    NativeScript - 親コンポーネントから子コンポーネントにコンテンツを渡す

  24. 24

    vuejsの親コンポーネントから子コンポーネントにメソッドを渡す

  25. 25

    親から子コンポーネントにデータを送信するためのangularの@inputとviewchild

  26. 26

    Angular2-親コンポーネントでクリックされたボタンで親コンポーネントから子コンポーネントにデータを渡します

  27. 27

    子コンポーネントの動的コンポーネントの場合、子から親にデータを渡す方法

  28. 28

    子コンポーネントから親コンポーネントへのデータの受け渡し

  29. 29

    親コンポーネントから子コンポーネントへのデータの受け渡し

ホットタグ

アーカイブ