【发布时间】:2021-04-11 15:57:39
【问题描述】:
Home 视图包含两个组件。 Filter 和 Results。 Results 组件很大程度上依赖于受Filter 组件影响的 vuex 存储数据的结果。在应用过滤器并且用户单击Filter 中的按钮后,Results 所需的数据将在商店中创建,然后该组件应呈现在Filter 下方。
这就是问题所在。当我打开Home 视图时,Results 组件会在控制台中引发错误,例如"TypeError: Cannot read property '0' of undefined"。这是意料之中的,因为数据还不存在。我尝试使用<Results v-if="$store.state.data != {}" /> 有条件地渲染Results。这可以防止在用户进入页面时呈现,并在单击按钮后加载数据后呈现Results,但在打开页面时Results 会引发与之前相同的错误。
我有一个可能的解决方案是我可以在存储中输入虚拟数据以防止错误(然后在其他条件下渲染)。但是必须有一种方法可以在没有虚拟数据的情况下工作。
【问题讨论】:
标签: javascript vue.js error-handling vuex