#javascript #arrays #typescript #next.js
Вопрос:
Он getStaticPaths()
продолжает выбрасывать страницу 404, и я предполагаю, что это связано с функцией getAllPostIds()
, которая предназначена для возврата массива объектов. Я использую typescript, я объявил массив объектов, но я не уверен, как использовать метод replace на id
interface ArrObj {
params: {
id: string;
}
}
let arrObj: ArrObj[];
export function getAllPostIds() {
const fileNames = fs.readdirSync(postsDirectory);
return fileNames.map(fileName => {
return {
params: {
id: fileName.replace(/.md$/, '')
}
}
})
}
export function getPostData(id) {
const fullPath = path.join(postsDirectory, `${id}.md`)
const fileContents = fs.readFileSync(fullPath, 'utf8')
const matterResult = matter(fileContents)
return {
id,
...matterResult.data
}
}
export async function getStaticPaths(){
const paths = getAllPostIds();
return{
paths,
fallback: false
}
}
export async function getStaticProps({ params }) {
const postData = getPostData(params.id)
return {
props: {
postData
}
}
}
Комментарии:
1. Ваши
getAllPostIds
функции иgetStaticPaths
функции выглядят нормально. Вы регистрируете какие-либо ошибки на сервере? Не могли бы вы показать нам и этуgetStaticProps
функцию тоже?2. Я добавил его в код…..