店家新增完服務項目後,顧客就可以開始查看預約了!所以今天將開發重點放在顧客角度會看到的頁面都實作完成。
import { collection } from "firebase/firestore";
import { db } from "../firebase";
useEffect(() => {
    async function fetchProducts() {
      try {
        const productsRef = collection(db, "products");
        // 做讀取成功的事...
      } catch (error) {
        console.log(error);
      }
    }
}, []);
 
詳情頁面原先在 Flow Chart 設計時,是希望僅聚焦於服務項目的內容上,針對提供該服務項目的店家資訊則是另外頁面。但因現在時間掌控的較不佳,所以就設計為在同一頁面,做好的樣子跟當初設計的 Wireflame 線稿稍微不同~
isLoading 設為 false,頁面看起來就不會有 loading 的元素~const [isLoading, setIsLoading] = useState(false);
useParams 抓取服務項目的 idimport { useParams } from "react-router-dom";
const params = useParams();
然後使用該 id 當作參數呼叫 API
import { db } from "../firebase";
import { doc, getDoc } from "firebase/firestore";
useEffect(() => {
    async function fetchProduct() {
      setIsLoading(true);
      const docRef = doc(db, "products", params.productId);
      const docSnap = await getDoc(docRef);
      if (docSnap.exists()) {
        // 做讀取成功的事...
        setIsLoading(false);
      }
    }
    fetchProduct();
}, [params.productId]);
