Я пытаюсь прочитать массив JSON из файла, сохранить его как List
в моем компоненте и использовать его для отображения некоторых вещей, но я получаю эту ошибку: Warning: Can't call setState on a component that is not yet mounted.
Вот мой код:
Классы для отображения списка:
data class Member(val name: String, val githubUrl: String, val positions: List<String>)
external interface MemberListProps : RProps {
var members: List<Member>
}
class MemberList : RComponent<MemberListProps, RState>() {
override fun RBuilder.render() {
ul {
for (member in props.members) {
li {
styledA {
css { attrs.href = member.githubUrl }
+member.name
}
ul {
member.positions.forEach {
li { +it }
}
}
}
}
}
}
}
Использование кода:
external interface AppState : RState {
var members: List<Member>
}
class App : RComponent<RProps, AppState>() {
override fun RBuilder.render() {
state.members.forEach { _ ->
memberList {
members = state.members
}
}
}
private fun fetchMembers() = window.fetch("./members.json").unsafeCast<Array<Member>>()
override fun AppState.init() {
val jsonMembers = fetchMembers()
members = listOf()
setState {
members = jsonMembers.toList()
}
}
}
Заранее спасибо!