reactjs - getStaticPaths Next JS 中未定义的路径
问题描述
我正在尝试做getStaticPaths
,getStaticProps
但我总是收到一个错误,paths
即getStaticPaths
. 下一个版本目前正在上10.0.3
。
这是错误信息
Error: Invalid value returned from getStaticPaths in /properties/[id]. Received undefined Expected: { paths: [], fallback: boolean }
这是我的代码
export async function getStaticPaths() {
try {
const properties = await api.get('/properties', {
headers: generateAuthHeaders(null, 'application/json', API_TOKEN)
})
const paths = properties.res.data.propertyDetails.map(value => {
return {
params: { id: value.id }
}
})
return { paths, fallback: false }
} catch (er) {
// do nothing
}
}
export async function getStaticProps({ params }) {
try {
const properties = await api.get(`/properties/${params.id}`, {
headers: generateAuthHeaders(null, 'application/json', API_TOKEN)
})
return {
props: {
propertyDetails: JSON.parse(JSON.stringify(properties.data.properties))
}
}
} catch (er) {
return {
props: { propertyDetails: false }
}
}
}
解决方案
我看代码的猜测getStaticPaths
是正在输入 catch 块,并且由于它没有返回语句,因此函数undefined
默认结束并返回。
所以你需要返回一些东西,就像这样......
export async function getStaticPaths() {
try {
const properties = await api.get('/properties', {
headers: generateAuthHeaders(null, 'application/json', API_TOKEN)
})
const paths = properties.res.data.propertyDetails.map(value => {
return {
params: { id: value.id }
}
})
return { paths, fallback: false }
} catch (er) {
console.error(er)
return { paths: [], fallback: false } // <- ADDED RETURN STMNT
}
}
我不熟悉APIgetStaticPaths
,因此您可能需要为. 所以这段代码可能不起作用,但我只是指出您需要以您收到的错误消息中指定的形式返回一个对象。paths
推荐阅读
- elm - 如何在 Elm 中读取本地文件?
- python - 如何使用 re.sub 搜索和替换确切的字符和数字?
- ios - 从 linux vps 服务器访问我的网站时,JSP 会话在 IOS 设备上返回空值
- r - 使用 R - 推荐实验室,无法将结果输入 Microsoft SQL Server 的数据框
- java - Spring Boot JMS MappingJackson2MessageConverter 找不到 `_type` 字段,即使它存在
- macros - 模块属性的长生不老药元编程
- c# - ComboBox 在显示新值的同时保留旧值
- linux - Bash 脚本似乎忽略了第一个变量
- swift - 当我打开设置 viewController 时 UIButton 变为 nil
- php - Laravel/流明 | 未能分发事件