2016-04-05 25 views
1

Redux'u kullanarak, redux modülümde hangi süzgeçten geçirdiğime bağlı olarak filtrelenmiş verileri döndüren bir "helper function" yazmayı deniyorum. Bu veriler, auth: true veya budt: true'a bağlı olarak bir giriş formu oluşturmak için kullanılır. Form temel olarak bu seviyedeki tüm totypeslerin üzerinde yineleme yapar ve koşullu olarak auth veya tomurcuk girişlerini gösterir/saklar. durumu düşünüldüğünde Redux modülümde, filtrelenmiş bir dizi hazır veriyi devletten döndürmek için nasıl yardımcı bir işlev oluşturabilirim?

...

totypesmap: [ 
    { 
     level:1, 
     totypes:[ 
     {ttno:1, ttcode:'', ttdesc:'regular', auth:true, budt:false}, 
     ] 
    } 
    ] 

Bir index argümanlar bekler ve devletten onun uygun totypesmap[index] döndüren benim modülünde verilen işlevi var. Bununla birlikte, içinden gelmek için getState()'u kullanmak zorundayım ki bu, vaat ettiğim verilerle çözüleceğine dair bir söz bekler.

Bunu başka yollarla mı gerçekleştirmeliyim? Benim konteyner veya bileşeninde

export const MyTOTypes = (level) => { 
    return (dispatch, getState) => { 
    const state = getState() 
    // return state.masterdata.totypesmap[level].totypes 
    } 
} 

ben sadece import { MyTOTypes } from 'redux/modules/masterdata' ve sonra benim "düzeyinde" MyTOTypes(0)

cevap

1

veri sabitse atanan Türleri İÇİN bilmek gerektiğinde, diyoruz koymak yok redux mağazası. Sadece bir modülün içine koyun ve verileri almak için yardımcı yöntemlerinizi ortaya çıkarın.

const totypesmap = [ ... ]; 
export function MyToTypes(level) { return totypesmap[level].totypes; } 

gerçekten Redux mağazadan istiyorsanız, o zaman yöntem ilk argüman olarak state götürsün. Sizin Tepki bileşenlerin mapStateToProps yöntemi içinde bu yöntemi çağıran edilecek ve mevcut mağaza durumunu sahip olacaktır: onun componentDidMount üzerinde arka uç çekilir ve markete itilmiş olarak

export function MyToTypes(state, level) { return state.totypesmap[level].totypes; } 
+0

ana veri isnt gerçekten, sabit düşündü. Temelde totypesmap'ı istediğim seviyeye filtreleyen bazı işlevler yazmam gerek. Her konteynırda bir işlev yazabilirim, ancak bu tekrarlanır. Fikir bu işlevi her yerde kullanabilmek ve devletten geçmeye ihtiyaç duymamaktır. – gorelative

+1

daha sonra yardımcı fonksiyonunuzu ilk argüman olarak 'state' alınız ve bileşenlerin' connect ''mapStateToProps' yönteminden yardım işlevini çağırmasını sağlayın. – Brandon