Рубрики
Uncategorized

Получение API, VS с использованием ContextProvider. Когда вы должны использовать просто привлечение против контекстнопроводов ??

Я использую дальше в первый раз, и мне это нравится, Есть выбор … когда мне нужно … Теги с помощью Nextjs, реагируют, помогите, дежопам.

Я использую дальше в первый раз, и мне понравится, есть выбор … когда мне нужен «контекстпрововидный»?

В моем следующем проекте у меня есть несколько файлов, чтобы получить данные из погребена:

В airtable.js.

const Airtable = require('airtable');
const base = new Airtable({ apiKey: process.env.AIRTABLE_API_KEY }).base(process.env.AIRTABLE_BASE_ID);
const table = base(process.env.AIRTABLE_TABLE_NAME);
const table2 = base(process.env.AIRTABLE_TABLE_NAME2);
const table3 = base(process.env.AIRTABLE_TABLE_NAME3);

const minifyRecords = (records) => {
    return records.map(record => getMinifiedRecord(record));
}

const getMinifiedRecord = (record) => {
    if(!record.fields.completed) {
        record.fields.completed = false;
    }
    return {
        id: record.id,
        fields: record.fields,
    }
}
export { table, table2, table3, getMinifiedRecord, minifyRecords}

Тогда в моих getcorals.js у меня есть:

import { table, minifyRecords } from './utils/Airtable'

export default async (req, res) => {
    try{
    const records = await table.select({}).firstPage();
    const minifiedRecords = minifyRecords(records);
    res.statusCode = 200;
    res.json(minifiedRecords);
    //console.log(records)
    }catch(err){
    res.statusCode = 500;
    res.json({msg: 'something went wrong'})
}
}

На моей реальной странице отображается мои данные, которые у меня есть:

import React from 'react'
import { CoralProvider } from '../contexts/CoralContext'
import { table, minifyRecords } from '../pages/api/utils/Airtable'
// im at video 6 in Airtable Nextjs video series....ITS WORKING!!!

export default function Coral({initialCoral}) {
    // console log initialCoral... it logs them out
    //console.log(initialCoral);
    try{
    return (
        
            

ZOAS PAGE

) }catch(err){ console.log(err); return{ props: { err: "something went wrong" } } } } export async function getServerSideProps(context) { const coral = await table.select({}).firstPage(); return { props: { InitCoral: minifyRecords(coral) } } }

ООООООООРРРРРР

Я просто привлечешь мои данные такими: ??????

import React from 'react'
import Coralapi from '../../API/Coralapi'
import { useEffect, useState } from "react";
import Airtable from 'airtable';
require('dotenv').config();

const base = new Airtable({apiKey: `${process.env.REACT_APP_AIRTABLE_API_KEY}` }).base(`${process.env.REACT_APP_AIRTABLE_BASE_ID}`);

function Coralpage() {
   const [coral, setCoral] = useState([]);
   const [care, setCare] = useState([]);
   useEffect(() => {
    base("CORAL")
    .select({view: "Gallery" })
    .eachPage((records, fetchNextPage) => {
        console.log(records);
        setCoral(records);
        fetchNextPage();
    });
    base("CARE")
    .select({view: "Gallery" })
    .eachPage((records, fetchNextPage) => {
        console.log(records);
        setCare(records);
        fetchNextPage();
    });

},[]);
return (
    <>
    

Coral Products

{coral.map((coral) => ( care.coral )} /> ))} ); } export default Coralpage

Я не слишком уверен на том, что использовать ???

Оригинал: «https://dev.to/yobretyo/fetching-a-api-vs-using-contextprovider-when-should-you-use-just-fetching-vs-a-contextprovider-12cg»