У меня есть следующие коды из моего проекта SPA next.js.Рекомендуется, чтобы компонент также загружался при загрузке страницы.Тем не менее, рекомендация загружает HTML, но не выполняет функцию getInitialProps.Интересно, будет ли next.js выполнять getInitialProps только с главной страницы (index.js).Если это так, как я могу также загрузить содержимое из других частей.
import Layout from '../components/layout'
import Recommend from './recommend'
import axios from "axios";
import React from 'react'
const Index = (props) => (
<Layout>
<Recommend/>
{/*{*/}
{/*console.log(props)*/}
{/*}*/}
</Layout>
);
Асинхронная функция из Рекомендовать
Recommend.getInitialProps = async function () {
console.log("here");
let tracks = {};
await axios.get('http://localhost:4000/playlist/detail', {
params: {
id: 1
},
withCredentials: true
}).then(function (response) {
console.log("success");
console.log(response);
for (let i in response.data.playlist.tracks) {
if (response.data.playlist.tracks.hasOwnProperty(i)) {
tracks[i] = {
song_id: response.data.playlist.tracks[i].id,
song_name: response.data.playlist.tracks[i].name,
album_id: response.data.playlist.tracks[i].al.id,
album_name: response.data.playlist.tracks[i].al.name,
artist_id: response.data.playlist.tracks[i].ar[0].id,
artist_name: response.data.playlist.tracks[i].ar[0].name
// Todo add posters
}
}
}
}).catch(function (error) {
console.log("failed to get recommend playlist");
console.log(error);
});
return {
music: tracks
}
Те же коды могут выполняться под индексом при загрузке страницы, но не в Рекомендоватьпри загрузке страницы.
Спасибо заранее.