我是打字稿新手,一直停留在 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);
}
};
使用
const [value, setValue] = useState<string|null>('const pi = 3.14;');
,你告诉打字稿 value
可能为空。由于您永远不会将其设置为 null,因此您可以安全地将 useState<string | null>
更改为 useState<string>
。这应该可以修复错误。