首页 > 解决方案 > 在加载之前尝试对未定义变量执行方法的反应?

问题描述

正如你从我的标题中可以看出的那样,我什至不知道该怎么称呼这个问题。

我在代码沙箱中创建了一个示例 https://codesandbox.io/s/interesting-poitras-5bcuv?file=/src/Demo.js

如果它是等待设置值的问题,我读过我需要实现某种加载状态?我在这里尝试过:

https://codesandbox.io/s/blissful-antonelli-tu624?file=/src/Demo.js

但似乎无法让它发挥作用,我什至不知道我是否走在正确的轨道上。

我已经使用 react 几个月了,我不完全理解的一件事是:

似乎代码运行了多次,第一次它将 {} 的默认状态作为值传递给我的演示组件,将设置状态并将实际值传入。

由于拆分,我的应用程序在实际值传入之前崩溃了。

过去,我只是在下面的问题上抛出一堆 if 和 && 语句,但这是最好的方法吗?

const split = props.values.home && props.values.home.split("-")

标签: javascriptreactjs

解决方案


你需要在那里进行安全检查。你的问题是一个普通的js问题,你不能访问一个undefined类型的道具

只需更改:(props.values?.home?.split("-") || [];因为 stackblitz 支持可选链接)

它会按您的预期工作


推荐阅读