Я просмотрел документы, чтобы узнать, смогу ли я _app. js прочитать слаг (ничего об этом не упомянуто). Мне нужно, чтобы этот слаг был добавлен в HTTP-запрос get, чтобы получить правильные данные, которые затем возвращали бы результаты в _app. js, в котором я мог бы затем использовать для передачи реквизит всем компонентам и страницам.
Пример : когда я go до http://localhost: 3000 / some-business-name , _app. js может захватить слаг (some-business-name), выполнить запрос и передать реквизиты все компоненты и страницы в проекте.
Но я действительно изо всех сил стараюсь заставить реквизиты приложения передавать все остальные страницы в папке страниц.
На моих страницах У меня есть папка:
- _app. js - (что мне нужно для передачи реквизита на все страницы)
- [slug]. js - (root страница, которая раньше обнаруживала слаг и теперь мне нужно, чтобы он просто получал реквизиты от _app. js)
- success. js - (нужно получать реквизиты от _app. js)
- ошибка. js - (необходимо получить реквизит от _app. js)
Я использую файл данных, который является массивом объектов бизнес-данных. o который я использую для тестирования динамической c маршрутизации.
Я посмотрел в документах Next JS и у меня возникла проблема с пониманием, как это можно сделать. Мне все еще нужно, чтобы слаг существовал, мне просто нужна помощь, чтобы понять, как я могу получить _app. js для полного захвата динамической c маршрутизации.
Мой код для _app. js: 1026 *
import React from 'react'
import App from 'next/app'
import { businesses } from '../data';
export default function MyApp({ Component, appProps }) {
return (
<Component appProps={appProps} />
)
};
MyApp.getInitialProps = async ({ appContext }) => {
const appProps = await App.getInitialProps(slug);
return {appProps};
};
App.getInitialProps = async (slug) => {
const business = businesses.filter((business) => {
return business.slug === slug;
});
return business[0];
};
В настоящее время мой [slug]. js is:
import React from 'react';
import Head from 'next/head';
import LandingPage from '../components/landing-page';
export default function Slug(props) {
return (
<div>
<Head>
<title>Home</title>
<link rel='stylesheet' href='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/css/bootstrap.min.css' integrity='sha384-Gn5384xqQ1aoWXA+058RXPxPg6fy4IWvTNh0E263XmFcJlSAwiGgFAW/dAiS6JXm' crossOrigin='anonymous' />
<link href='https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300;0,400;0,600;0,700;0,800;1,300;1,400;1,600;1,700;1,800&display=swap' rel='stylesheet' />
<script src='https://code.jquery.com/jquery-3.2.1.slim.min.js' integrity='sha384-KJ3o2DKtIkvYIK3UENzmM7KCkRr/rE9/Qpg6aAZGJwFDMVNA/GpGFF93hXpG5KkN' crossOrigin='anonymous'></script>
<script src='https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.12.9/umd/popper.min.js' integrity='sha384-ApNbgh9B+Y1QKtv3Rn7W3mgPxhU9K/ScQsAP7hUibX39j7fakFPskvXusvfa0b4Q' crossOrigin='anonymous'></script>
<script src='https://maxcdn.bootstrapcdn.com/bootstrap/4.0.0/js/bootstrap.min.js' integrity='sha384-JZR6Spejh4U02d8jOt6vLEHfe/JQGiRRSQQxSfFWpi1MquVdAyjUar5+76PVCmYl' crossOrigin='anonymous'></script>
</Head>
<LandingPage businessInfo={props.appProps}/>
<style global jsx>{`
body {
font-family: 'Open Sans', sans-serif;
}
`}</style>
</div>
);
};
Удивительно, но я могу получать реквизиты приложения для компонента LandingPage в [slug]. js, но не в успехе. js и ошибка. js страниц.
Любая помощь очень ценится! Спасибо!