vuex映射值时出错Computed property "city" was assigned to but it has no setter

import HomeHeader from './components/Header'
	import HomeSwiper from './components/Swiper'
	import HomeIcons from './components/Icons'
	import HomeRecommend from './components/Recommend'
	import HomeWeekend from './components/Weekend'
	import axios from 'axios'
	import { mapState } from 'vuex'

	export default{
		name: 'Home',
		components:{
			HomeHeader,
			HomeSwiper,
			HomeIcons,
			HomeRecommend,
			HomeWeekend
		},
		data () {
			return {
				lastCity: '',
				swiperList:[],
				iconList:[],
				recommendList:[],
				weekendList:[]
			}
		},
		computed: {
			...mapState(['city'])
		},
		methods: {
			getHomeInfo () {
				axios.get('/api/index.json?city=' + this.city).then(this.getHomeInfoSucc)
			},
			getHomeInfoSucc (res) {
				res = res.data
				if(res.res && res.data){
					const data = res.data
					this.city = data.city
					this.swiperList = data.swiperList
					this.iconList = data.iconList
					this.recommendList = data.recommendList
					this.weekendList = data.weekendList
				}
			}
		},
		mounted () {
			this.lastCity = this.city
			this.getHomeInfo()
		},
		activated () {
			if(this.lastCity !== this.city){
				this.lastCity = this.city
				this.getHomeInfo()
			}
		}
	}

程序能运行,就是有这么一行报错

mapState() 出来的都是只读的计算属性,怎么能被赋值呢。

1 Like

methods之後的getHomeInfoSucc裡,把this.city = data.city刪掉,那個大大沒有講到這一行要刪,所以會有報錯,去試試。