Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Vue+;Vuex未从状态获取值_Javascript_Arrays_Vue.js_Object_Vuex - Fatal编程技术网

Javascript Vue+;Vuex未从状态获取值

Javascript Vue+;Vuex未从状态获取值,javascript,arrays,vue.js,object,vuex,Javascript,Arrays,Vue.js,Object,Vuex,这是我第一次使用Vuex。我在$store.state中有两个数组,一个带有购物车[]空数组,另一个课程[]内有课程参数 我整理了日志,它成功地将新课程添加到购物车$store.state.cart.join()中。它给了我以下输出:[{“lessonID”:1003,“lessonTitle”:“lessonActivity”:“English”,“lessonLocation”:“Kensington”,“lessonPrice”:“80”,“lessonAvailability”:5}]

这是我第一次使用Vuex。我在$store.state中有两个数组,一个带有购物车[]空数组,另一个课程[]内有课程参数

我整理了日志,它成功地将新课程添加到购物车$store.state.cart.join()中。它给了我以下输出:
[{“lessonID”:1003,“lessonTitle”:“lessonActivity”:“English”,“lessonLocation”:“Kensington”,“lessonPrice”:“80”,“lessonAvailability”:5}]


那么我怎样才能在另一个组件中获得这些信息呢?我尝试过这样做:

<div class="col-7 bg-secondary" v-for="(lesson, id) in $store.state.cart" :key="lesson.id">
                <div class="card" >
                    <img :src="$store.state.cart.url" alt="" class="card-img-top img-fluid">
                    <div class="card-body">
                        <h3 class="card-title">{{ $store.state.cart[id].Title }}</h3>
                        <ul class="list-group list-group-flush">
                        <li class="list-group-item">Subject: {{ $store.state.cart.Activity }} </li>
                        <li class="list-group-item">Location: {{ $store.state.cart.Location }} </li>
                        <li class="list-group-item">Price: {{ $store.state.cart.Price }} </li>
                        <li class="list-group-item text-danger">Availability: {{ $store.state.cart.Availability }} </li>
                        </ul>
                    </div>

{{$store.state.cart[id].Title}
  • 主题:{{$store.state.cart.Activity}
  • 位置:{{$store.state.cart.Location}
  • 价格:{{$store.state.cart.Price}
  • 可用性:{{$store.state.cart.Availability}

但不幸的是,没有显示任何内容,也没有显示任何错误。只是为了确认我没有在computed properties中添加任何内容,也没有在
标记中添加任何内容。请帮助我:/

假设
$store.state.cart.join()
正确并返回您所说的数组中的单个对象,您可以将计算属性添加为:

<script>
export default {
    computed: {
      lesson() {
      return $store.state.cart.join()[0]
    }
}
</script>

导出默认值{
计算:{
第(课){
返回$store.state.cart.join()[0]
}
}
然后在模板中不需要v-for,但您需要:

<h3 class="card-title">{{ lesson.Title }}</h3>
{{lesson.Title}

同样,我在返回的数组中看不到Title属性,但我假设它在提供的代码中是正确的。

您注意到您的外部
没有关闭吗


{{$store.state.cart[id].Title}
  • 主题:{{$store.state.cart.Activity}
  • 位置:{{$store.state.cart.Location}
  • 价格:{{$store.state.cart.Price}
  • 可用性:{{$store.state.cart.Availability}

所以@catmal有点正确,但我只需要不显示$store.state.cart.Activity
但使用@catmal解释,然后按照我的定义编写参数

 computed: {
            cart() {
                return this.$store.state.cart;
            }
        }
然后
asd{{car.lessonID}

这是错误的,因为我试图显示
car.id
(例如,它在我的store.js中是这样定义的


感谢您的帮助

如果您在
中没有任何内容,您希望
相关文档中如何定义
$store
?注意Vuex还有很多视频,对初学者特别有用。但您确实需要一些JavaScript。我刚刚复制了解决此问题所需的信息。我遵循了一个教程al在youtube上做的和你一样,只是没有join()。因为我用join()做了一个新变量,只是想看看我是否真的在检索我添加到“cart”数组中的内容的信息。不幸的是,我不知道为什么它没有显示任何内容…这就是计算结果:{cart(){返回这个。$store.state.cart;}在模板中,我只是尝试执行{{cart.Activity}例如,没有任何错误,只是空白…好的,所以我需要做的是写我如何插入数组中。就像我做的那样:lessonID:this.$store.state.Lessons[index].id,所以在数组中我需要显示的不是cart.id,而是cart.lessonID