javascript - Nextjs useEffect 和 useState Hook 不适用于生产

标签 javascript reactjs next.js

在我的 nextjs-app 中,我使用 useEffectuseState-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/

相关文章:

reactjs - 使用Next.js next-routes,如何为基础网页定义一个home路由?

javascript - 调整旋转对象的大小保留左上角(亚像素渲染问题)

javascript - 当导航栏中还有另一个元素时,如何使导航栏中的 Logo 居中?

ios - react 导航滑动返回不会触发

node.js - ReactJS:如何在本地服务器上部署

javascript - ReactJS - UseRef,而不是 useState,来替换 props

javascript - Next.js:getStaticProps 不更新生产中的获取值

reactjs - 使用 NextJS 和 next-routes,如何处理来自 server.js 和客户端的 404

javascript/css/php/mysql 在网站的div中收集用户邮箱地址

javascript - jquery 函数调用不起作用