NaingAungLuu / form-conductor

A declarative form validation for Jetpack Compose
https://formconductor.naingaungluu.me
MIT License
59 stars 5 forks source link

java.lang.NullPointerException during submit formData #50

Open myxzlpltk opened 1 year ago

myxzlpltk commented 1 year ago

Let's say you have this simple form

@Form
data class SignUpForm(
    @Optional
    @MaxLength(150)
    val address: String? = null
)

In the UI using effect you update the form by submitting it

form(SignUpForm::class) {
    // formData is SignUpForm == true
    // formData = SignUpForm()
    LaunchedEffect(formData) { submit(formData) }
}

This causing an error like this

FATAL EXCEPTION: main
Process: com.bangkit.coffee, PID: 26216
java.lang.NullPointerException: null cannot be cast to non-null type kotlin.Any
    at me.naingaungluu.formconductor.FormImpl.submit(FormImpl.kt:183)
    at me.naingaungluu.formconductor.composeui.scope.FormScopeImpl.submit(FormScopeImpl.kt:29)
    ...

But if you change the default into empty string instead null, the problem is gone

val address: String? = ""

The problem exists if you update the form via submit()