Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
@akihiro-inagaki
Revisions
Report this question
Subscribe question
Help us understand the problem. What is going on with this question?
Q&A
Closed

Vueのmethods内の値の受け渡し方法が分からないです。

解決したいこと

下のonChange内のfail.nameをその上のfailValueに値を渡したいのですが、どうすればいいですか?

methods: {
  },
   fileValue(file){
    console.log(file.name)
  },
   onChange(file/*, fileList*/) {
    // ファイル名をコンソールへ出力
   console.log(file.name)
  },}
0
3
Answer

onChange内で呼べば動きますかね。

methods: {
  fileValue(file){
    console.log(file.name)
  },
  onChange(file/*, fileList*/) {
    // ファイル名をコンソールへ出力
    fileValue(file)
    console.log(file.name)
  },
}
1
回答ありがとうございます、ですがfileValue内でnameが定義されていないとエラーが出ているのですが、nameも渡したいときどうすればいいですか?

エラー内容です。

```console
handler: "TypeError: Cannot read property 'name' of undefined"

found in
```
すると、そもそもonChange(file)が実行された時点で、
既にfile.nameが定義されていないと思われますね。

file.nameが定義されていれば、fileを渡したときに
勝手にfile.nameも一緒に渡されているはずです。

まずは、以下のようにonChange(file)実行時の
fileを出力して、中身を確かめてみると良さそうです。

onChange(file) {
console.log(file)
}

これで(多分)fileにnameが入っていないと思いますので
onChange(file)が実行される前にfile.nameを定義して
おく処理が必要になるかと思われます。

上のコードからでは、fileにいつどういう処理が走るか
わからないため、その部分をコピペしていただけると
また詳しく回答できると思います。
(その前に解決したならもちろん追記は不要です)
View the remaining 1 comments.

これをお試し下さい。

{
data() {
  return {
    file: {
     name: 'foo'
    }
  }
},
methods: {
  fileValue(file){
    this.file = file
    console.log(this.file.name)
  },
  onChange() {
    console.log(this.file.name)
  },
}
1

Try this:

data: {
  file: {
    name: 'foo'
  }
},
methods: {
   fileValue(file){
    this.file = file
  },
  onChange(file/*, fileList*/) {
    console.log(this.file.name)
  }
}

Or you can write:

data: {
  file: {
    name: 'foo'
  }
},
methods: {
   fileValue(file){
    this.file = file
  },
  onChange(file/*, fileList*/) {
    this.printFileName()
  },
  printFileName() {
   console.log(this.file.name)
 }
}
0
Help us understand the problem. What is going on with this answer?
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account Login