Variables are broken - how do you cope with that?

listview
lists

#1

Hey there,

first for all members that are new in thunkable, maybe pay for thunkable PRO because they did not join thunkable in the last 3 months:

Yes, using lists, variables and objects have bugs!

If you do not use variables or lists or objects for coding, then you are lucky. If you think these are integral parts, then you can use workarounds. I want to present the most important workarounds:

  1. set … in list : CORRUPTED (nothing happens) solution: use a function (purple block) to declare variables, that of course only exist on the screen where the function exists.

  2. insert … in list … CORRUPTED (same as above)

  3. set property … in object … : CORRUPTED : like above use a variable declared via a local function. Unfortunely it is not possible to copy this variable to a global object variable. So you have to save it to a textstring-variable by using “get JSON from object” on the other Screen you can do the reverse way “get object from JSON”

  4. in list … get … : CORRUPTED when using multiple screens in tabviewer. It appears that only the last edited screen is compiled properly (live mode and downloaded version). On every other screen, the lists will start with the index 0 (instead of index 1). So there are two possibilities, either you make the first list item a NULL, or you make the index you want -1 .
    This bug is really annoying, because you have to be aware, which Screen your last edited Screen is -> almost impossible.
    Update Oct 18th: This seems to appear in large projects. How large? not yet figured out. Unfortunely also the cause is still unknown ->https://github.com/thunkable/thunkable-issues/issues/37

WORKAROUND:

  1. insert … in Listviewer : PARTIALLY CORRUPTED, for the first insert action. Workaround: when the Listviewer is empty, then use the declare-list block. If you have at least one item in the listviewer already, you can use the block without worries.

  2. get property … of object: LIMITED FUNCTIONALITY: You cannot use a text-variable in this context. Workaround: make a JSON from object. Search for the text-variable in the resulting string. get the substring from this position to the end and use the make list from string with delimiter … block or other string and list blocks to get the information you want. (Really complicated, but there is no other possibility yet). - oh wait, there is another possibility: store the object in the firebase and after that navigate to the location with the text-variable by using the join text blocks :slight_smile:

I hope this might help some friends.

Don’t panic. I am pretty sure, the team of @thunkable will fix this in the next days.

And please don’t have bad thoughts! Thunkable is awesome because they improve variables and objects and lists to make it more easy to access for newcomers, which i highly appreciate. This is the reason why these bugs exist at the moment :robot:

Cheers,
John


#2

Yes, we are currently working on these bugs. Unfortunately they came about because of the new types of variables. We’ll have the fix out as soon as possible.

-Mark


Heavy bug - can you confirm it?
#3

are these still an issue?
trying to read firebase data into a listviewer using what I think would be best practice, but not seeing anything.


#4

sorry, I moved on to react native.

But if you share your project file or a minimal example, I might be able to help you

Cheers,
User81