У меня проблема, я хочу выполнить метод всякий раз, когда загружается страница Vue.Я создал метод, а затем вызвал его в хуках жизненного цикла create ().Код, который я кодировал, был таким:
computed: {
...mapGetters({
projects: 'projects'
})
},
created () {
this.getProjectName()
},
methods: {
getProjectName () {
for (let index = 0; index < this.projects.value.length; index++) {
this.projectList.push(this.projects.value[index].projectName)
console.log(this.projectList[index])
}
}
}
После того, как я загрузил страницу, метод не был выполнен, но если я сначала перешел на другую страницу, затем вернусь на страницу, которая содержит этот код, затемнаконец, метод был выполнен.
Если кто-нибудь знает проблему, я действительно открыт для предложений
Спасибо
[ОБНОВЛЕНИЕ] : Вот как яизвлек данные из фиктивных данных JSON
project.json
{
"requestId": 34582764723647,
"errorMessage": null,
"errorCode": null,
"success": true,
"value": [
{
"projectId": "IDP-001",
"projectName": "Indianapolis",
"project_type": [
{
"project_id": "LOG",
"project_name": "LOGISTIC"
}
],
"duration": "5 months",
"startDate": "2018-10-17",
"endDate": "2019-02-17",
"numberOfIndividuals": 8,
"roleNeeded": [
{
"role": "Front-end developer"
}
],
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolorem doloribus, dicta id recusandae cum fugiat",
"members": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0853",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0855",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
}
]
},
{
"projectId": "ORD-001",
"projectName": "X-Order",
"project_type": [
{
"project_id": "COM",
"project_name": "COMMERCE"
}
],
"duration": "5 months",
"startDate": "2018-10-17",
"endDate": "2019-02-17",
"numberOfIndividuals": 8,
"roleNeeded": [
{
"role": "Front-end developer"
}
],
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolorem doloribus, dicta id recusandae cum fugiat",
"members": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f08u4y5",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748fuuu1",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "0000011",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0858",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "COM",
"project_name": "COMMERCE",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
}
]
},
{
"projectId": "SEOUL-001",
"projectName": "Homepage Revamp",
"project_type": [
{
"project_id": "COM",
"project_name": "COMMERCE"
}
],
"duration": "5 months",
"startDate": "2018-10-17",
"endDate": "2019-02-17",
"numberOfIndividuals": 8,
"roleNeeded": [
{
"role": "Front-end developer"
}
],
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolorem doloribus, dicta id recusandae cum fugiat",
"members": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
}
]
},
{
"projectId": "SIN-001",
"projectName": "Singapore UI",
"project_type": [
{
"project_id": "LOG",
"project_name": "LOGISTIC"
},
{
"project_id": "MOBILE",
"project_name": "MOBILE"
}
],
"duration": "5 months",
"startDate": "2018-10-17",
"endDate": "2019-02-17",
"numberOfIndividuals": 8,
"roleNeeded": [
{
"role": "Front-end developer"
}
],
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolorem doloribus, dicta id recusandae cum fugiat",
"members": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
}
]
},
{
"projectId": "MTA-001",
"projectName": "MTA APPS",
"project_type": [
{
"project_id": "COM",
"project_name": "COMMERCE"
}
],
"duration": "5 months",
"startDate": "2018-10-17",
"endDate": "2019-02-17",
"numberOfIndividuals": 8,
"roleNeeded": [
{
"role": "Front-end developer"
}
],
"description": "Lorem ipsum, dolor sit amet consectetur adipisicing elit. Dolorem doloribus, dicta id recusandae cum fugiat",
"members": [
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d701748f0232",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d7dfd748f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
},
{
"id": "d290f1ee-6c54-4b01-90e6-d70bgh8f0851",
"img": "http://kovus.com/working-docs/capacity/wp-content/uploads/2016/01/testi-3.jpg",
"name": "Raditia Madya",
"employement": 1,
"personality": "ESTJ",
"email": "gusti.madya@gdn-commerce.com",
"status": 1,
"records": {
"records_id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
"records_domain_score": 5,
"records_technical_score": 5,
"project_history": [
{
"project_id": "LOG",
"project_name": "LOGISTIC",
"reviews": {
"responsibility": 4,
"communication": 4,
"team_work": 3,
"problem_solving": 5,
"leadership": 4,
"personality": 4,
"domain": 4,
"technical": 3
}
}
]
},
"role": "Front-end developer"
}
]
}
]
}
index.js
import recommendations from './data/recommendations.json'
import projects from './data/projects.json'
import members from './data/members.json'
const fetch = (mockData, time = 0) => {
return new Promise((resolve) => {
setTimeout(() => {
resolve(mockData)
}, time)
})
}
export default {
fetchRecommendations () {
return fetch(recommendations, 1000)
},
fetchProjects () {
return fetch(projects, 1000)
},
fetchMembers () {
return fetch(members, 1000)
}
}
store.js
import Vue from 'vue'
import Vuex from 'vuex'
import mock from '@/api/mock'
Vue.use(Vuex)
export default new Vuex.Store({
state: {
projectList: {},
projects: {},
recommendations: {},
members: {},
projectDetail: {
projectName: '',
projectType: [],
startDate: null,
endDate: null,
projectDescription: '',
roleNeeded: [
{
label: '',
number: ''
}
]
}
},
getters: {
projectList (state) {
return state.projectList
},
projectDetail (state) {
return state.projectDetail
},
recommendations (state) {
return state.recommendations
},
members (state) {
return state.members
},
projects (state) {
return state.projects
}
},
mutations: {
setProjectList (state, value) {
state.projectList = value
},
setProjectDetail (state, value) {
state.projectDetail = value
},
setRecommendations (state, value) {
state.recommendations = value
},
setMembers (state, value) {
state.members = value
},
setProjects (state, value) {
state.projects = value
},
setStartDate (state, value) {
state.startDate = value
},
setEndDate (state, value) {
state.endDate = value
}
},
actions: {
getRecommendations ({ commit }) {
return mock
.fetchRecommendations()
.then(recommendations => commit('setRecommendations', recommendations))
},
getMembers ({ commit }) {
return mock
.fetchMembers()
.then(members => commit('setMembers', members))
},
getProjects ({ commit }) {
return mock
.fetchProjects()
.then(projects => commit('setProjects', projects))
}
}
})