user14166158
user14166158

Reputation:

How can I access the variable in this case?

I have this code. How inside this.$refs.form.setErrors can I access the keyName variable? My code is not working.

async handleRegister() {   
  this.$axios.post('register', { data: this.registerForm })
  .then(response => {
    let dataErrors = response.data.errors
    let errors = Object.keys(dataErrors).map((key) => [key, dataErrors[key]]);

    for (let error of errors) {
      let keyName = 'registerForm.name'
      this.$refs.form.setErrors({
        keyName: error[1][0]
      })
    }
  })
}

EDIT

I gave such an example, but the variable name will have a different value assigned. I did it according to the Vivek Singh user way. Is it okay?

for (let error of errors) {
  const formErrorsObject = {}
  formErrorsObject[`registerForm.${error[0]}`] = error[1][0]

  this.$refs.form.setErrors(formErrorsObject)
}

Upvotes: 0

Views: 56

Answers (2)

imvain2
imvain2

Reputation: 15847

When creating an object, you can type in your own key name, you don't need to use a variable.

async handleRegister() {   
  this.$axios.post('register', { data: this.registerForm })
  .then(response => {
    let dataErrors = response.data.errors
    let errors = Object.keys(dataErrors).map((key) => [key, dataErrors[key]]);

    for (let error of errors) {
      this.$refs.form.setErrors({
        'registerForm.name': error[1][0]
      })
    }
  })
}

Upvotes: 1

Vivek Singh
Vivek Singh

Reputation: 685

 for (let error of errors) {
  const obj={};
  obj['registerForm.name']=error[1][0];
  this.$refs.form.setErrors(obj);
}

You can set an object like this;

Upvotes: 0

Related Questions