Я создаю очень очень простое следующее js приложение, в котором я пытаюсь получить данные из API.
Мое требование - отображать данные в файле layout.js
, а это layout.js
файл является дочерним в index.js
файле.
index. js:
import Layout from "./layout";
import React from "react";
class Home extends React.Component {
render() {
return (
<div>
<Layout />
<h4> Main content will be displayed here !! </h4>
</div>
);
}
}
export default Home;
макет. js:
import React from "react";
import fetch from "isomorphic-unfetch";
function Layout(props) {
return (
<div>
<p>Preact has {props.stars} ⭐</p>
<p> Why I couldn't get the above "props.star" ? </p>
</div>
);
}
Layout.getInitialProps = async () => {
console.log("comes into layout getinitial props");
const res = await fetch("https://api.github.com/repos/developit/preact");
const json = await res.json(); // better use it inside try .. catch
return { stars: json.stargazers_count };
};
export default Layout;
Итак, согласно приведенному выше коду, я вызвал страницу layout
внутри страницы index.js
(в моем реальном приложении мне нужно вызывать только так, чтобы не было изменений в вызове макета внутри индекса) ..
Но когда я сделал console.log()
в функции Layout.getInitialProps
в макете, он ничего не печатает и, следовательно, данные API не извлекаются ..
Завершите здесь рабочую демонстрацию с кодом
Почему я не могу получить данные внутри layout.js
во время вызова в качестве детей от index.js
?
Также предоставьте мне правильное обновленное решение для достижения этой цели. Я действительно искал много вопросов, но ни один из них не решил мою проблему, и я не мог понять эти решения. Пожалуйста, помогите мне с приведенным выше примером.