NextJS Dinamik Oluşturma

0

Soru

Uzun zamandır geliştirici sonunda bir sonraki telefonu aldı.js, bunun aptalca bir şeye dönüşeceğini biliyorum. Burada gider. Ne benim oldu getStaticPaths() burada değer mi? Görünüşe göre tam olarak dokümanların gerektirdiği şekilde biçimlendirdim. (Atanacak değer paths oluyor console.log()'d terminal penceresinde)

enter image description here

export const getStaticPaths = async () => {
    const paths = getEvents();
    return {
        paths,
        fallback: false
    };
};

Ve... getEvents() işlev:

export const getEvents = () => {
    axios.post(`${globals.api_endpoint}getEvents.php`, {
        action: 'getStaticPaths'
    }).then((r) => {
        if (!r.data.error) {
            const paths = r.data.map(index => {
                return {
                    params: {
                        id: index.event_id
                    }
                };
            });
            console.log(paths);
            return paths;
        }
    });
};
dynamic next.js reactjs
2021-11-23 05:35:19
2

En iyi cevabı

1

Bu getStaticPath zaman uyumsuz bir işlevdir. Eğer böyle bir şey yapıyorsan paths burada her zaman bir sözüm olacak.

const paths = getEvents();
return {
    paths,
    fallback: false
};

Sonuçları beklemek için burada await anahtar sözcüğünü kullanmalısınız:

const paths = await getEvents();

ve içinde getEvents işlev tüm aksiosları döndürmelisiniz.çağrı sonrası, böyle:

return axios.post(`${globals.api_endpoint}getEvents.php`, {...

Ayrıca, apı uç noktanızın nasıl göründüğünü bilmiyorum, ancak apı yolu şöyle görünmelidir: ${globals.api_endpoint}/getEvents.php. Apı uç noktanızın sonunda eğik çizgi olmamalıdır.

2021-11-23 05:57:30
0

Muhteşem. Teşekkürler, yardım için @ krybinski. Elbette bir söz veriyor. Hata beklediğim kadar aptalca değildi, ama basit bir şeydi, kesin.

export const getEvents = async () => {
    return axios.post(`${globals.api_endpoint}getEvents.php`, {
        action: 'getStaticPaths'
    });
};


export const getStaticPaths = async () => {
    const response = await getEvents();
    const paths = response.data.map(event => {
        return {
            params: {
                id: event.event_id
            }
        }
    });
    return {
        paths,
        fallback: false
    };
};
2021-11-23 13:53:11

Diğer dillerde

Bu sayfa diğer dillerde

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................