鍍金池/ 問答/HTML/ vuex getters取出的值總是undefined

vuex getters取出的值總是undefined

在我的頁面上img死活顯示不出來,請指教哪里寫的不對,或者實現(xiàn)邏輯有誤。

<template>
    <div class="login" @keydown.enter="handleSubmit">
        <div class="login-con">
            <Card :bordered="false">
                <p slot="title">
                    <Icon type="log-in"></Icon>
                    歡迎登錄
                </p>
                <div class="form-con">
                    <Form ref="loginForm" :model="form">
                        <FormItem prop="username">
                            <Input v-model="form.username" size="large" placeholder="請輸入用戶名">
                                <Icon :size="16" type="person" slot="prepend"></Icon>
                            </Input>
                        </FormItem>
                        <FormItem prop="password">
                            <Input type="password" size="large" v-model="form.password" placeholder="請輸入密碼">
                                <Icon :size="14" type="locked" slot="prepend"></Icon>
                            </Input>
                        </FormItem>
                        <FormItem prop="verification">
                            <Input v-model="form.verification" size="large" placeholder="請輸入驗證碼">
                                <Icon :size="14" type="social-angular" slot="prepend"></Icon>
                                <a href="javascript: void(0);" @click="refresh" slot="append" title="點擊刷新驗證碼">
                                    <img v-show="captcha" :src="captcha"/>
                                </a>
                            </Input>
                        </FormItem>
                        <FormItem>
                            <Button type="primary" size="large" long>登錄</Button>
                        </FormItem>
                    </Form>
                </div>
            </Card>
        </div>
    </div>
</template>

<script>
export default {
    data () {
        return {
            form: {
                username: '',
                password: '',
                captchaId: this.$store.getters.captchaId,
                verification: ''
            }
        };
    },
    methods: {
        refresh () {
          this.$store.dispatch('Captcha');
        }
    },
   beforeCreate (){
        this.$store.dispatch('Captcha');
   },
   computed: {
     captcha: function () {
       return this.$store.getters.captcha;
     }
   }
};
</script>
import { login, captcha } from '@/api/users'
import { getToken, setToken, removeToken, setAccess, removeAccess } from '@/utils/auth'

const user = {
  state: {},
  mutations: {
    SET_CAPTCHA_INFO: (state, captchaInfo) => {
      console.log(state);
      state.captchaId = captchaInfo.captchaId;
      state.captcha = captchaInfo.captcha;
    }
  },
  actions: {
    Captcha ({commit}) {
      return new Promise((resolve, reject) => {
        captcha().then(response => {
          const resp = response.data;
          commit('SET_CAPTCHA_INFO', resp.data);
          resolve()
        }).catch(error => {
          reject(error)
        })
      })
    }
  }
};
export default user;
import Vue from 'vue';
import Vuex from 'vuex';

import app from './modules/app';
import user from './modules/user';
import getters from './getters'

Vue.use(Vuex);

const store = new Vuex.Store({
    state: {
        //
    },
    mutations: {
        //
    },
    actions: {

    },
    modules: {
        app,
        user
    },
    getters
});

export default store;
回答
編輯回答
我不懂

先試著在
computed里面寫

captchaId: this.$store.getters.captchaId

2017年5月6日 23:37
編輯回答
枕頭人
captchaId: this.$store.getters.captchaId

把這個移動到計算屬性里。

2017年12月15日 20:50