Вы видите, что я записываю данные, возвращенные из моей лямбда-функции.Данные определенно возвращаются, как и ожидалось.Однако в createPage (...) allMessages в pageContext в компоненте dashboard.js всегда имеет значение null / undefined.
Почему? ...
dashboard.js
const DashboardPage = ({ pageContext: { allMessages } }) => (
<Layout>
<SEO title="Dashboard" keywords={[`gatsby`, `application`, `react`]} />
<h1>Dashboard</h1>
<p>Welcome to your new Gatsby site.</p>
{console.log('allMessages: ', allMessages)}
{allMessages.map(mssg => (
<li
key={mssg.id}
style={{
textAlign: 'center',
listStyle: 'none',
display: 'inline-block'
}}
>
<Link to={`/message/${mssg.name}`}>
<p>{mssg.name}</p>
</Link>
</li>
))}
</Layout>
);
export default DashboardPage;
gatsby-node.js
exports.createPages = async ({ actions: { createPage } }) => {
get('get-messages')
.then(allMessages => {
console.log('gatsby-node allMessages: ', allMessages);
// Create a page that lists all Pokémon.
createPage({
path: `/dashoard`,
component: require.resolve('./src/pages/dashboard.js'),
context: { allMessages }
});
})
.catch(err => {
return Promise.reject(new Error(err));
});
};
Я заблокирован.Спасибо, что поделились своим опытом!
РЕДАКТИРОВАТЬ:
Это тоже не работает.То же не определено в dashboard.js ...
exports.createPages = async ({ actions: { createPage } }) => {
get('get-messages')
.then(allMessages => {
// allMessages = typeof allMessages === 'string' ? JSON.parse(allMessages) : allMessages;
// console.log('gatsby-node allMessages: ', allMessages);
// // Create a page that lists all Pokémon.
const test = [{ name: 'Test message' }];
createPage({
path: `/dashoard`,
component: require.resolve('./src/pages/dashboard.js'),
context: { allMessages: test }
});
})
.catch(err => {
return Promise.reject(new Error(err));
});
};