NextJS Typescript - 对象可能未定义 - nextjs 构建失败

问题描述 投票:0回答:1

我是打字稿新手,一直停留在 nextjs 构建中。代码在我的浏览器中完美运行,但是当我尝试执行 nextjs build 时,出现以下错误。在网上查了一些方法后,尝试了一些方法,但都没有成功。我通过单击按钮来调用测试函数。

Type error: Object is possibly 'undefined'.

  62 |     useEffect(() => {
  63 |         if(value!.includes('javascript')){
> 64 |             setJs(value!.split('```javascript').pop().split('```')[0])
     |                   ^
  65 |         }
  66 |
  67 |         if (value!.includes('html')){

代码:

const [value, setValue] = useState<string|null>('const pi = 3.14;');
    const [loading, setLoading] = useState(true);
    const [html, setHtml]=useState('')
    const [css,setCss] = useState('')
    const [js,setJs] = useState('')


    useEffect(() => {
        if(value!.includes('javascript')){
            setJs(value!.split('```javascript').pop().split('```')[0])
        }

        if (value!.includes('html')){
            setHtml(value!.split('```html').pop().split('```')[0])
        }

        if (value!.includes('css')){
            setCss(value!.split('```css').pop().split('```')[0])
        }
    },[value])





    const test = async () => {


        try {

            setValue('hi')


        } catch (error) {
            console.log(error);
        }
    };
reactjs typescript next.js react-typescript
1个回答
0
投票

使用

const [value, setValue] = useState<string|null>('const pi = 3.14;'); 
,你告诉打字稿
value
可能为空。由于您永远不会将其设置为 null,因此您可以安全地将
useState<string | null>
更改为
useState<string>
。这应该可以修复错误。

© www.soinside.com 2019 - 2024. All rights reserved.