首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我试图通过使用axios和本地json文件从按钮单击来呈现一个随机数组元素。我遗漏了什么?

我试图通过使用axios和本地json文件从按钮单击来呈现一个随机数组元素。我遗漏了什么?
EN

Stack Overflow用户
提问于 2020-03-01 15:20:51
回答 1查看 213关注 0票数 0

我现在已经得到了它,我可以以随机顺序呈现整个数组,只是不能呈现数组的一个元素。在显示整个json对象时,我也有一个问题,而不仅仅是引用的文本。

以下是html:

代码语言:javascript
复制
<template>
  <div>
    <button v-on:click="getTeacupData">Get Teacup Data</button>
    <!-- <div>{{ teacupDataList }}</div> -->
    <div
      v-for="teacupData in teacupDataList"
      :key="teacupData.quote"
      class="teacup-data"
    >
      <div>
        <span class="quote">
          {{
            teacupDataList[Math.floor(Math.random() * teacupData.quote.length)]
          }}</span
        >
      </div>
    </div>
  </div>
</template>

下面是剧本:

代码语言:javascript
复制
<script>
import axios from 'axios'

export default {
  name: 'Teacup',
  data() {
    return {
      teacupDataList: []
    }
  },
  methods: {
    getTeacupData() {
      axios.get('/teacupProph.json').then((response) => {
        this.teacupDataList = response.data
      })
    }
  }
}
</script>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-03-01 15:48:36

添加名为randomQuote的计算属性,如下所示:

代码语言:javascript
复制
<script>
import axios from 'axios'

export default {
  name: 'Teacup',
  data() {
    return {
      teacupDataList: []
    }
  },
 computed:{
  randomQuote(){
  const rand=Math.floor(Math.random() * this.teacupDataList.length)
     return this.teacupDataList[rand]?this.teacupDataList[rand].quote:""
   }
  },
  methods: {
    getTeacupData() {
      axios.get('/teacupProph.json').then((response) => {
        this.teacupDataList = response.data
      })
    }
  }
}
</script>

在模板中,不要使用v-for循环,只需调用计算的属性:

代码语言:javascript
复制
<template>
  <div>
    <button v-on:click="getTeacupData">Get Teacup Data</button>
    <!-- <div>{{ teacupDataList }}</div> -->

      <div>
        <span class="quote">
          {{
            randomQuote
          }}</span>
      </div>

  </div>
</template>

编辑

将json文件放在components文件夹中,并像axios('./teacupProph.json')一样调用它,并将@:click修复为@click,检查这个代码

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60476608

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档