tac0810 / vue-to-php-mailer

7 stars 0 forks source link

confirm関数でのvalidAllのチェックができていない可能性があります #8

Open nasikusa opened 4 years ago

nasikusa commented 4 years ago

突然すみません。

Form.vueのmethodsのconfirm関数なのですが、

this.validAllが一番最後のところのみのチェックになってるのかな..??と思いました。 間違っていたらすみません。

  methods: {
    confirm() {
      this.validAll = true;
      const customInputs = Object.keys(this.$refs).filter(v =>
        /^CustomInput/.test(v)
      );
      customInputs.forEach((CustomInput, index) => {
        if (this.formValues[index].require || this.formValues[index].value) {
          this.$refs[CustomInput][0].checkTheValue(
            this.formValues[index].value
          );
        }
        this.validAll = this.formValues[index].isValid;
      });
      if (this.validAll) {
        this.mode = "confirm";
      }
    },
}

一応なのですが、こちらで修正したスクリプトも載せておきます。

methods: {
    confirm() {
      this.validAll = true;
      const customInputs = Object.keys(this.$refs).filter(v =>
        /^CustomInput/.test(v)
      );
      const isValidArray = [];
      customInputs.forEach((CustomInput, index) => {
        if (this.formValues[index].require || this.formValues[index].value) {
          this.$refs[CustomInput][0].checkTheValue(
            this.formValues[index].value
          );
        }
        isValidArray.push(this.formValues[index].isValid);
      });

      this.validAll = isValidArray.every( value => value === true );

      if (this.validAll) {
        this.mode = "confirm";
      }
    },
}
tac0810 commented 4 years ago

@nasikusa

こちらの修正分プルリクエスト出してもらってもいいでしょうか?? 確認してマージしたいです

nasikusa commented 4 years ago

@tac0810

わかりました! ただ、こちらで組み込んでしまったものはディレクトリの構造が違ったり、テキストが追加されてたりするので、新しくフォークしたものお送りします。

===============================

上の変更以外に追加でconfig.jsの

クエスチョンマークの文字、エラー吐いていて外したのですが、もしかしたらこれの影響の可能性もありますか?

変更前

  if (form?.validation) {
    form.validation = Validator[(form?.validation)];
  }

変更後

  if (form.validation) {
    form.validation = Validator[(form.validation)];
  }

?がある状態だと、

僕の方の環境では、こんな感じのエラーが出てました...。

    ERROR in ./js/vue/form/config.js
    Module build failed (from ../node_modules/babel-loader/lib/index.js):
    SyntaxError: Unexpected token (15:11)

      13 | 
      14 | export default forms.map(form => {
    > 15 |   if (form?.validation) {
         |            ^
      16 |     form.validation = Validator[(form?.validation)];
      17 |   }
      18 | 

     @ ./js/vue/form/Form.vue?vue&type=script&lang=js& (../node_modules/babel-loader/lib??ref--1-0!../node_modules/vue-loader/lib??vue-loader-options!./js/vue/form/Form.vue?vue&type=script&lang=js&) 206:0-40 211:20-26 212:22-28
     @ ./js/vue/form/Form.vue?vue&type=script&lang=js&
     @ ./js/vue/form/Form.vue
     @ ./js/app/controllers/ContactViewController.js
     @ ./js/app/routers/VcRouter.js
     @ ./js/index.js
tac0810 commented 4 years ago

@nasikusa 多分このプラグインが有効でないからかもです? babel-plugin-proposal-optional-chaining

nasikusa commented 4 years ago

@tac0810 ありがとうございます! 確かにそのプラグインかもしれないです... ちょっと今時間がなさそうなので、またあとでみてみます 🙇‍♂️