Comments (4)
My current workaround about this to make it less repetitive is to use a functor like this :
module type Config = {
type field('a);
type state;
let set: (state, field('a), 'a) => state;
let get: (state, field('a)) => 'a;
};
module Make = (StateLenses: Config) => {
module Form = ReForm.Make(StateLenses);
module FieldString = {
[@react.component]
let make = (~field, ~label) => {
<Form.Field
field
render={({handleChange, error, value, validate}) =>
<label>
<span> {React.string(label)} </span>
<input
value
onChange={Helpers.handleChange(handleChange)}
onBlur={_ => validate()}
/>
<p> {error->Belt.Option.getWithDefault("")->React.string} </p>
</label>
}
/>;
};
};
};
Hope it can helps others 😄
from reform.
I really liked this pattern @DCKT
from reform.
Enforces consistence across your codebase without losing flexibility.
We were thinking in creating a form builder library on top of ReForm and that may be a nice structure to start with
from reform.
Document @DCKT approach
from reform.
Related Issues (20)
- Migrate domain settings to the org. account
- Add a gh action to create and publish a new version (minor, patch, major) HOT 1
- Clean unused branches
- Answer all issues
- Review all pending pull requests
- Improve documentation
- Update and improve demo project
- Remove unnecessary 'meta type parameter HOT 1
- Prepare migration to reschema@v3
- Fix husky and lint-staged config
- ReForm v12
- "Submitting" form state is replaced with "Valid" straight away HOT 4
- Rename ReForm.Helpers to ReForm.WebHelpers / ReForm.Web.Helpers
- update to rescript v10 HOT 3
- Uncaught TypeError: (void 0) is not a function HOT 3
- On submit validation failure, focus on first invalid input HOT 5
- Unexpected validation pass about nested fields HOT 4
- Input validation on blur should not apply to Pristine fields HOT 2
- Drop ReasonReactUpdate HOT 1
- ReScript v11 update
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from reform.