hi! I'm trying to read a JSON array from a file, store it as a List in my component, and use it to display some stuff, yet I'm getting this error: Warning: Can't call setState on a component that is not yet mounted.Here is my code:
The classes to display the list:
Copy code
data class Member(val name: String, val githubUrl: String, val positions: List<String>)
external interface MemberListState : RState {
var members: List<Member>
}
class MemberList : RComponent<RProps, MemberListState>() {
override fun RBuilder.render() {
ul {
for (member in state.members) {
li {
styledA {
css { attrs.href = member.githubUrl }
+member.name
}
}
ul {
member.positions.forEach {
li { +it }
}
}
}
}
}
private fun fetchMembers() = window.fetch("./members.json").unsafeCast<Array<Member>>()
override fun MemberListState.init() {
val jsonMembers = fetchMembers()
members = listOf()
setState {
members = jsonMembers.toList()
}
}
}
The use of the code:
Copy code
class App : RComponent<RProps, RState>() {
override fun RBuilder.render() {
child(MemberList::class) {}
}
}
Thanks in advance!
a
andylamax
12/19/2020, 1:24 PM
Copy code
override fun MemberListState.init() {
val jsonMembers = fetchMembers()
members = jsonMembers.toList()
}
andylamax
12/19/2020, 1:25 PM
Don't call
setState
on
init
t
TheOnlyTails
12/19/2020, 1:26 PM
I changed it, and the page went blank, with these errors: