作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在我的 nextjs
-app 中,我使用 useEffect
和 useState
-hooks 来获取一些数据:
export default function PricingBlock({ data }) {
const [pricingItems, setPricingItems] = useState()
const [featuredItem, setFeaturedItem] = useState()
useEffect(() => {
const getPricingItems = async () => {
const pricingItems = await request({ query: PRICING, variables: {} })
const items = await pricingItems?.allSpecialistPages
const featured = pricingItems?.specialistLandingpage?.card[0]
setPricingItems(items)
setFeaturedItem(featured)
}
getPricingItems()
}, [featuredItem, pricingItems])
return (
<div>
<div
style={{
backgroundColor: featuredItem?.backgroundColor?.hex,
backgroundImage: `url(${featuredItem?.backgroundImage?.url})`,
borderTop: '1px solid ' + featuredItem?.backgroundColor?.hex,
borderLeft: '1px solid ' + featuredItem?.backgroundColor?.hex,
borderRight: '1px solid ' + featuredItem?.backgroundColor?.hex,
}}
> ... </div>
</div>
)
}
当我在本地运行它时,它工作正常,但是当我运行 npm run build
时 - 我收到错误 Object is possibly 'undefined'.
指的是 特色项目
我也试过:
const [featuredItem, setFeaturedItem] = useState({}) - as an object
但随后出现错误 Property 'backgroundColor' does not exist on type '{}'。
我该如何解决这个问题?有人可以帮帮我吗?
最佳答案
这是由于 TypeScript 错误。这段代码:
const [featuredItem, setFeaturedItem] = useState()
没有定义featuredItem
的类型,所以它没有第一个访问的属性(backgroundColor
)。
要么修复它,要么在你的 next.config.js
中,临时添加以下内容:
module.exports = {
...
typescript: {
ignoreBuildErrors: true,
},
}
关于javascript - Nextjs useEffect 和 useState Hook 不适用于生产,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74873996/
我是一名优秀的程序员,十分优秀!