vue.js state. value定义不足时显示默认值|版本js 3

xxe27gdn  于 2022-12-23  发布在  Vue.js
关注(0)|答案(2)|浏览(151)

我在Vuejs 3的一个组件上有下面的代码。它工作得很好,一点问题都没有。
但我想展示一些没有结果的情况:

<td> {{ $store.state.output[0].address }} </td>

如果上面的代码未定义或不存在,它应该显示类似“-”的内容,而不是错误。

<template>
    <tbody class="text-center">
        <tr class="table-default">
            <th scope="row" > Origin </th>
            <td> {{ $store.state.output[0].address }} </td>
            <td> {{ $store.state.output[0].distance }} </td>
            <td> {{ $store.state.output[0].fuelCost }} </td>
        </tr>
        <tr>
            <th scope="row">1</th>
            <td> {{ $store.state.output[1].address }} </td>
            <td> {{ $store.state.output[1].distance }} </td>
            <td> {{ $store.state.output[1].fuelCost}} </td>
        </tr>
        <tr>
            <th scope="row">2</th>
            <td> {{ $store.state.output[2].address }} </td>
            <td> {{ $store.state.output[2].distance }} </td>
            <td> {{ $store.state.output[2].fuelCost }} </td>
        </tr>
        <tr>
            <th scope="row">3</th>
            <td> {{ $store.state.output[3].address }} </td>
            <td> {{ $store.state.output[3].distance }} </td>
            <td> {{ $store.state.output[3].fuelCost }} </td>
        </tr>
    </tbody>
</template>
<script>
    export default {
    name: 'LineResultTable'
}

有没有办法在HTML上实现这个技巧?比如v-if,v-show之类的?我试过了,但是到现在还没有

weylhg0b

weylhg0b1#

您可以使用布尔表达式

<td> {{ $store.state?.output[0]?.address || '-' }} </td>

不需要使用v-ifv-show

zyfwsgd6

zyfwsgd62#

您可以使用这种类型的单行if-else语句

<td> {{ $store.state.output[0].address!==undefined?'Default value':$store.state.output[0].address }} </td>

这里的语法是:

{{ (condition) ? (true block) : (else block) }}

相关问题