Javascript vuex中未定义Array.find()方法参数

Javascript vuex中未定义Array.find()方法参数,javascript,vue.js,vuex,Javascript,Vue.js,Vuex,我一直在vuex getter中使用.find()方法 我设置了一个状态为的列表存储(页) //state.js 常量状态={ 页面:[{id:1,内容:“第1页”},{id:2,内容:“第2页”}] }; 还有一个具有查找方法的getter,如本文所述: //getters.js 常量getters={ indexPage:state=>{ 让indexPage=state.pages.find(函数(页面){//与arrow函数的错误相同 返回page.id==1; }); 返回index

我一直在vuex getter中使用
.find()
方法

我设置了一个状态为的列表存储(页)

//state.js
常量状态={
页面:[{id:1,内容:“第1页”},{id:2,内容:“第2页”}]
};
还有一个具有查找方法的getter,如本文所述:

//getters.js
常量getters={
indexPage:state=>{
让indexPage=state.pages.find(函数(页面){//与arrow函数的错误相同
返回page.id==1;
});
返回indexPage!==未定义?indexPage:空;
}
}
我希望返回第一个对象,但在我将getter(使用MapGetter)映射到组件中后,它会抛出此错误

TypeError: "page is undefined"
我还用
.filter()
方法(返回一个数组)尝试了相同的代码,但它没有任何错误。此代码适用于:

const getters={
indexPage:state=>{
让indexPage=state.pages.filter(page=>page.id==1);
返回indexPage[0];
}
}
试试:

const getters = {
  indexPage: state => page => state.pages.find(p => p.id === page)
}
更新:使用MapGetter

const store=新的Vuex.store({
声明:{
页码:[
{id:1,内容:“第1页”},
{id:2,内容:“第2页”}
]
},
吸气剂:{
indexPage:state=>page=>state.pages.find(p=>p.id==page)
}
})
const mapGetters=Vuex.mapGetters
新Vue({
el:“#应用程序”,
百货商店
挂载(){
console.log(this.indexPage(1))
},
计算:{
…地图绘制者([
'索引'
])
}
})


运行
console.log(state.pages)时会得到什么列表,页。但有趣的是,它修复了它(尽管有一个控制台语句,ESLint正在发疯)。编辑:我的意思是修复它,不会抛出错误,并且正在将数据传递给组件。相同的结果。是我尝试的第一件事,并引导我找到了那个意大利面代码你如何调用你的getter?然后
indexPage
将返回一个
函数而不是页面,对吗?将返回与页面参数具有相同id的对象是,然后我传递id(1)。返回未定义。