2
Prismic (CMS) APIの呼び出し方法:next.js application?プリズミック呼び出すためのnext.js getInitialProps内でPrismic APIを呼び出すにはどうすればよいですか?
npm install prismic-javascript prismic-dom --save
in their documentation.とコードを説明するように、
import React from 'react'
import Link from 'next/link'
import 'isomorphic-fetch'
export default class Index extends React.Component {
static async getInitialProps() {
const res = await fetch('https://myAPI_URL')
const json = await res.json()
return { cars: json.results }
}
render() {
return (
<div>
<p>I can see the data {this.props.cars} </p>
</div>
)
}
}
しかし、私は依存関係としてプリズミック開発キットを使用したい:next.jsでは私が前に持っていた
const Prismic = require('prismic-javascript');
const apiEndpoint = "https://your-repository-name.prismic.io/api/v2";
const apiToken = "this_is_a_fake_token_M1NrQUFDWUE0RYvQnvv70";
Prismic.getApi(apiEndpoint, {accessToken: apiToken}).then(function(api) {
return api.query(""); // An empty query will return all the documents
}).then(function(response) {
console.log("Documents: ", response.results);
}, function(err) {
console.log("Something went wrong: ", err);
});
しかし、私はプリズミックAPI呼び出しをgetInitialProps内のnext.jsと一緒に使用するにはどうすればよいですか?例:
import React from 'react'
import Link from 'next/link'
import 'isomorphic-fetch'
export default class Index extends React.Component {
static async getInitialProps() {
// fetch Prismic API and return the results
}
render() {
return (
<div>
<p>Showing data fetched from API here</p>
</div>
)
}
}
ありがとうございます! – userden
@Fabian Schultz 1つ以上の約束事を扱うのはどうですか?この場合、Promise.all()を適用する方法は? – vizFlux
@vizFluxあなたは約束をいくつかの関数に入れ、それを一つの 'Promise.all'に渡すことができます。 [その他のいくつかの質問](https://stackoverflow.com/a/41292710/6941627)をチェックするか、新しい質問をしてください:) –