Arrayで使いたいメソッドがObserverになっていて使えない問題の対処法
3488 ワード
現象
mapがない!!😇
概要
Nuxt.jsで色々ごちゃごちゃやってたときにググっても解決方法が出てこず詰まってしまった。
やりたいことは意外と単純で、mapメソッドを使いたかっただけなのだが思いの外しんどかったのでメモ
筆者が取得しようとしたArrayがObserverになってしまっていたケース
assets/js/profile/skill.js
export default {
language: {
javaScript: {
name: 'JavaScript',
framework: ['Vue.js', 'Nuxt.js', 'React.js', 'AngularJS', 'jQuery']
}
}
}
index.vue
import skill from '~/assets/js/profile/skill.js'
こんな感じで持ってきた中の、framework
がObserverとなります。
index.vue
内で指定するときはskill.language.framework
ですね。
対処法
- Array.prototype.関数名.callを使う
- 本来使えないメソッドを使えたりできるやつらしい、あまり使ったことがない
- ↑の第一引数をObjectでキャストする
- これをしないと
TypeError: Array.prototype.map called on null or undefined
が発生してしまう
- これをしないと
コード
おそらくmapの部分を書き換えれば他のメソッドも動作すると思います。
xxxの部分はobserverになっているArrayを入れてください。
const arr = Array.prototype.map.call(Object(xxx), value => {
// process
})
Author And Source
この問題について(Arrayで使いたいメソッドがObserverになっていて使えない問題の対処法), 我々は、より多くの情報をここで見つけました https://qiita.com/Ancient_Scapes/items/ecd293a7444283cab706著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .