Two-way binding is back, and this time it's respectable
npm install bidi-mobx

Declare your view model:
``ts
export default class Person {
// A text field, validated to between 1-20 characters
name = field(stringLimits(1, 20)).create("", "Name")
// A number field, zero decimal places, between 0-120
age = field(numberLimits(0, 120)).also(numberAsString(0)).create(0, "Age");
// A field display "tags" using a custom format (array of strings)
tags = field(tagsAsString).create([], "Tags");
// The combined validation state
rule = rules([this.name, this.age, this.tags]);
}
`
Bind your view to it:
`tsx
function PersonEditor({ person }: { person: Person }) {
return (
Use binding-ready simple form components:
*
*
*