質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

Q&A

解決済

1回答

853閲覧

Cloud Firestoreからのデータフェッチとレンダリング

nekonekonekko

総合スコア5

Firebase

Firebaseは、Googleが提供するBasSサービスの一つ。リアルタイム通知可能、並びにアクセス制御ができるオブジェクトデータベース機能を備えます。さらに認証機能、アプリケーションのログ解析機能などの利用も可能です。

Next.js

Next.jsは、Reactを用いたサーバサイドレンダリングなどを行う軽量なフレームワークです。Zeit社が開発しており、nextコマンドでプロジェクトを作成することにより、開発環境整備が整った環境が即時に作成できます。

Cloud Firestore

Cloud Firestore は、自動スケーリングと高性能を実現し、アプリケーション開発を簡素化するように構築された NoSQLドキュメントデータベースです。

React.js

Reactは、アプリケーションのインターフェースを構築するためのオープンソースJavaScriptライブラリです。

0グッド

0クリップ

投稿2021/08/15 06:12

編集2021/08/15 12:03

前提

Next(React)でポモドーロタイマーアプリを作っています!
ApexChartsを用いたグラフの描画はできていますが、グラフのデータはコードに手動で書いた状態です。
イメージ説明

実現したいこと

Cloud Firestoreから取得したデータをもとにApexChartsを再描画したいです。
以下のようにApexChartsのコードはクラス型コンポーネントで記述されています。

import React, { Component, useState, useEffect } from 'react'; import { db } from '../../../lib/db'; import ReactApexChart from 'react-apexcharts'; class Graph extends Component<{}, { series: any[]; options: any }> { constructor(props) { super(props); this.state = { series: [ { name: 'React', data: [31, 40, 28, 51, 42, 109, 100], }, { name: 'Next', data: [11, 32, 45, 32, 34, 52, 41], }, ], options: { chart: { height: 350, type: 'area', }, dataLabels: { enabled: false, }, stroke: { curve: 'smooth', }, xaxis: { type: 'datetime', categories: [ '2021-06-10T00:00:00.000Z', '2021-06-11T01:30:00.000Z', '2021-06-12T02:30:00.000Z', '2021-06-13T03:30:00.000Z', '2021-06-14T04:30:00.000Z', '2021-06-15T05:30:00.000Z', '2021-06-16T06:30:00.000Z', ], labels: { datetimeFormatter: { year: 'yyyy', month: "MMM'yy", day: 'MM/dd', hour: 'HH:mm', }, }, }, tooltip: { x: { format: 'dd/MM/yy HH:mm', }, }, }, }; } render() { return ( <div id="chart"> <ReactApexChart options={this.state.options} series={this.state.series} type="area" height={350} /> </div> ); } } export default Graph;

そこで、
現在のようにコードに直接各形式ではなく必要な時にCloud Firestoreのデータを取得したいと考えております。
イメージ説明
ApexChartsで使用したいCloud Firestorenoのデータ

  • Cloud Firestoreで使いたいデータ;name, time
  • コードに直接書きたい定数のデータ;chart, dataLabels, stroke, xaxis(/type, categories, labels), tooltip

試したこと

クラスコンポーネントのまま、必要なタイミングでFirestoreにアクセスするような手法を模索して
コードのリファクタリングを行いグラフを再描画したいですが手詰まりになっている状態です。

何かしらの解決策を教えていただきたいです!

補足情報(FW/ツールのバージョンなど)

package.json

"dependencies": { "firebase": "^8.6.5", "next": "10.2.1", "apexcharts": "^3.27.1", "chart.js": "^3.3.2", "react": "17.0.2", "react-dom": "17.0.2", }, "devDependencies": { "@types/node": "^15.3.0", "@types/react": "^17.0.6", "@types/react-dom": "^17.0.5", "typescript": "^4.2.4" }

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

ーーーーーーーーーーーーーー済み

投稿2021/08/22 06:02

nekonekonekko

総合スコア5

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問