How to connect ListViewPage with DetailPage when I see Data source incompatible

Hi, I am trying to build basic App : ListviewPage-then select-then show DetailPage of selected product. I load data from REST API, I am facing error on ListViewPage when I try to load the field of DATA source into the created PageParameter of DetailPage. (I believe this needs to be done to make it work…but I might be wrong)


Anybody can help?

Page Paramater variables can only be a simple Text value.

Thanks. In my DATA source I have several fields Text, several numers, several URL, etc…so I have all types. But when I try to fill the VALUE of PAGE PARAMETER on some page with whatever field, I see the error included on the screenshot before.

I hope you have already repeated your list with your data variable.

after that

Bind your page parameter to a formula. Then pass for eexample,
STRING(repeated.current.Description) to the page parameter.

Hi, thank you for reply, unfortunately your answer did not help me much , I think I need to understand the whole system more deeply …

  • “bind paga parameter to formula”?How? in page parameter section there is nothing to put “formula” and on what page ?(List view or Detail view)
  • "pass for example STRING(repeated.current.Description) to the page parameter. "- again, How? and on what page ?(List view or Detail view)
    Thanks. Jozef

On the ontap event for your list, you need to connect the open page flow function. When you select your details page to be opened, it will ask you for the page parameters to pass to the details page.

Also this page parameter should be for your Details page. not the list page.

HI, if I want to open page “Detail” from “ListView” do I need to create “Page parameter” on both pages with same Name?
…because : When I created “Page Parameter1” on “DetailPage” and from “ListPage” I set “onClick event” and selected the target page as " DetailPage" I dont see the “pageParameter1” …But if I create on “ListView” page a PageParameter2, I can see and link this field…

To open detail from list view you need to have a page parameter on the detail page only.

At the oncomponentTap event of the list view you need to connect the flow function open page and pass the parameters there.

Hi, Thanks. Seems there was something on the page incorrect, after deleting the “item with Data in repeat” I see the correct PageParameter. Now I am facing hopefully last issu on DetailPage:
When I place some text , and set it to be " Data-Page Parameter" I see the correctly passed “PageParameter” However : When I set it to "load the data from “DataSource(DataVariable)” and for content I select “Data-DataVariable-DataSource-FieldDescription” in preview I see the correctly loaded data, but in Mobile everything is blank…nothing loads.
DataSource is set : as SingleDataRecord + ID (Empty)
PageParameter is set : Text, I tried AnyText…no luck
…my page Parameter contains 3-6 words + some numbers
…as I wrote : when I display the “passed” PageParameter from previous page, it shows OK…

Try set data variable flow function on page load and set it to get record. In the get record block pass the id.

Another way to do it is
Pass the details too as parameter from the previous page. This way you won’t have to make an extra api call. Airtable has a api call limit of 5 calls/sec and your data is most probably already loaded in the list view page.

HI, I am OK with alot API calls, I dont use Airtable, but direct Google Spreadsheet API. With your answer I did not understand much, sorry :slight_smile:
I have the DATA source set and the logic looks like this (I did everything according to the tutorial here:AppGyver: Building A REAL APP with Mock.API | AppGyver Tutorial for Beginners 2021 - YouTube
arround 19:00 starts the thing where I face my issue.
see screenshot of my setup




The data nicely shows in WEB GUI, but in Mobile App NOTHING

In your data variable you have given Design Id. It should be your page parameter. Params. Id or whatever you have named your parameter. .

Also before get record, add a delay for 1000ms.

my Page parameter (on DetailPage) is named “DesignID” …so I have it set allready the way you suggested.
Also : I have no idea where to put the delay you suggested…
I am surprised such simple thing as "linking 2pages together is so complicated…
Let me know please.
Jozef

The suggested delay is in the data variable’s logic.

Hi, still the DetailView page doesnt show the ONLY1 record when DesignID is passed (DesignID is passed from ListViewPage, I can see it) my Page parameter (on DetailPage) is named “DesignID” …so I have it set allready the way you suggested. My curent setup is on screenshots, any idea Why it still wont show the selected item fields?



Do hop on a zoom call sometime to fix this.

Hi there,
I have just started using Appgyver a few days ago and while building a sample internal app for my own business processes I have encountered a somewhat similar issue.
Briefly my issue: List page with brief customer data and a tap event to navigate to details page. Data is stored in Firebase, all the connectors work fine, data has different types: text, number, list, email… The issue was with passing the repeated.current.id from the list page to the details page’s “page parameter” as the latter didn’t want to accept the passed value. It considered the passed id value as text even though it shall be an object with one property.

After a little fiddling around the solution:

  1. On details page first create a “page parameter” with the desired name and “text” value type.
  2. On details page create a “data variable” with the desired name and “single data record” variable type.
  3. As identifier choose “Object with properties” > then bind it to “Data and Variables” > “Page parameter” > your chosen id-name and save it.

In my opinion there might be some validation issues with the “page parameter” “value type” “identifier” objects validation process. But luckily the abovementioned workaround works just fine on IOS and Web Interface as well.

Hope it helps, in case you would like some screenshots, let me know. :smiley:
Have a nice day.