簡體   English   中英

create-react-app 導入的 function 返回 undefined

[英]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內的returnforEach內,將其移到外面,它應該可以工作

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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM