[英]create-react-app imported function returns undefined
我有 2 個從 helpers.js 文件導出的過濾器函數:
export const filterSource = (data, source_tags_array) => {
let accumulator = []
source_tags_array.forEach( tag => {
accumulator = data.filter( event => {return event.source_type.includes(tag)})
// accumulator.concat(...tmp)
})
accumulator.sort(function(a,b) {
return new Date(b.date) - new Date(a.date)
})
return accumulator
}
export const filterTags = (data, tags_array) => {
let accumulator = []
tags_array.forEach( tag => {
data.forEach((event) => {
if (!accumulator.some(el => el.id === event.id) && event.tags.includes(tag)) {
accumulator.push(event)
}
})
return accumulator
})
}
我將它們導入reducer文件:
import * as helpers from "../helpers";
export const filter = events_data => {
return (dispatch, getState) => {
const { access_tags, access_source_tags} = getState().user
const filteredSource = helpers.filterSource(events_data, access_source_tags)
const events = helpers.filterTags(filteredSource, access_tags)
dispatch(fetchEventsSuccess(events))
}}
雖然第一個(filterSource)工作正常,但第二個(filterTags)是未定義的
帶有來自調試器的變量值的屏幕截圖
如果您看不到圖像...過濾源:數組(160)事件數據:數組(395)訪問源標簽:數組(1)訪問標簽:數組(1)事件:未定義
返回點上 helpers.js 中 filterTags 的累加器是Array(65)但由於某種原因,導入后未定義...
我也嘗試過命名導入......同樣的問題。
有任何想法嗎?
filterTags
內的return
在forEach
內,將其移到外面,它應該可以工作
export const filterTags = (data, tags_array) => {
let accumulator = []
tags_array.forEach( tag => {
data.forEach((event) => {
if (!accumulator.some(el => el.id === event.id) && event.tags.includes(tag)) {
accumulator.push(event)
}
})
})
return accumulator
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.