Partage
  • Partager sur Facebook
  • Partager sur Twitter

[NativeScript] RadListView

Marche avec un Repeater ou un ListView mais pas avec un RadListView

    27 septembre 2019 à 11:51:59

    Bonjour,

    J'ai un problème avec l'utilisation d'un RadListView pour un projet native script (en typescript, mais j'ai essayé en JS j'ai le même soucis).

    Dès que mes données sont chargés j'ai l'erreur suivante :

    > TypeError : Cannot read property 'add' of undefined

    Si je change le RadListView par un Repeater ou un ListView ça fonctionne correctement.

    Je ne penses pas que le problème viens du viewModel ou du code-behind : je récupère des données de la même façon sur une autre page et ça fonctionne très bien (mais avec un Repeater par contre).

    Voici mon XML :

    <Tabs>
            <TabStrip>
                <TabStripItem title="Avec alcool"></TabStripItem>
                <TabStripItem title="Sans alcool"></TabStripItem>
            </TabStrip>
            <TabContentItem>
                <lv:RadListView items="{{ alcoholList }}" id="productsAlcohol">
                    <lv:RadListView.listViewLayout>
                        <lv:ListViewLinearLayout scrollDirection="Vertical"/>
                    </lv:RadListView.listViewLayout>
                    <lv:RadListView.itemTemplate>
                        <Label text="{{ name }}" />
                    </lv:RadListView.itemTemplate>
                </lv:RadListView>
            </TabContentItem>
            <TabContentItem>
                <lv:RadListView items="{{ alcoholFreeList }}" id="productsAlcoholFree">
                    <lv:RadListView.listViewLayout>
                        <lv:ListViewLinearLayout scrollDirection="Vertical"/>
                    </lv:RadListView.listViewLayout>
                    <lv:RadListView.itemTemplate>
                        <Label text="{{ name }}" /> 
                    </lv:RadListView.itemTemplate>
                </lv:RadListView>
            </TabContentItem>
        </Tabs>

    Et le chargement de mes données dans le code-behind :

    viewModel.load()
            .then((response) => {
                response.data.forEach((element: any) => {
                    const product = {
                        id: element.ArtID,
                        name: element.ArtLib,
                        priceHT: element.ArtPrixBase,
                        priceTTC: element.ArtPrixTTC,
                        image: "~/images/cocktail1.png",
                        isAlcoholFree: isAlcoholFree(element.ArtCollectEnu)
                    };
                    if (product.isAlcoholFree === false) {
                        viewModel.alcoholList.push(product);
                    } else if (product.isAlcoholFree === true) {
                        viewModel.alcoholFreeList.push(product);
                    }
                });
            })
            .catch((error) => { 
                console.log(error);
            });


    Et mes variables dans le viewModel :

    alcoholList: ObservableArray<ProductModel> = new ObservableArray<ProductModel>();
    alcoholFreeList: ObservableArray<ProductModel> = new ObservableArray<ProductModel>();



    J'ai aussi essayé de jouer avec la version de nativescript-ui-listview (le plugin contenant RadListView) mais ça ne règle pas le soucis.

    Merci d'avance

    • Partager sur Facebook
    • Partager sur Twitter

    [NativeScript] RadListView

    × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
    • Editeur
    • Markdown