Comments (2)
Příklad pro oddělení logiky formuláře:
// Covered by unit tests
function validateNewsletterForm(values) {
return {
// ... email errors
}
}
function useNewsletterForm({ onSubmit }) {
const form = useFormik({
initialValues: { email: '' },
onSubmit,
validate: validateNewsletterForm,
})
return {
values: form.values,
errors: form.errors,
// ...
handlers: {
emailChange: (event: React.ChangeEvent<HTMLInputElement>) => {
form.setFieldValue('email', event.target.value)
// ... validations, etc.
},
handleSubmit: form.handleSubmit,
// ...
},
}
}
Jedná se o příklad. Dané je, že je nutné zanořit stavy a jejich mutace. Nejsem si ale jist, zda zanořit celou logiku formu tedy i implementaci onSubmit
(nebo třeba validate
, ale v tomto případě mám spíše jasno a jsem pro zanoření). Cíl je částečně oddělit logiku (a stavy) od view a redukovat množství míst s logikou, např:
const form = useNewsletterForm({
onSubmit: () => {
console.log('Hello World')
},
})
return (
<form>
<input value={form.values} onChange={form.handlers.emailChange} />
</form>
)
// vs...
const formik = useFormik({
onSubmit: () => {
console.log('Hello World')
},
})
return (
<form>
<input
value={formik.values.email}
onChange={(event) => {
formik.setFieldValue('email', event.target.value)
// ...
}}
/>
</form>
)
from app.
Vezmu si to. Docela mě to chytlo, i když jedu hrozně pomalu, jak ty technologie neznám.
A asi bych to připravil bez samotného volání API, protože to ještě není hotové.
from app.
Related Issues (20)
- Slackový bot pro pravidelné hlášení metrik HOT 2
- Přestat používat Slack ID jako primární klíč
- Vrátit do hry endpoint pro vypnutí notifikací
- Onboarding v aplikaci HOT 3
- Zjednodušit registrační formulář
- Přidat Open Graph image pro hledané role HOT 1
- Vymyslet lepší metriky
- Přihlašování do aplikace slackovým účtem č.d
- Zahození registrace do Slacku
- Přihlašování do aplikace pomocí účtů třetích stran (GitHub, Google, …) HOT 1
- Registrace do aplikace pomocí účtů třetích stran (GitHub, Google, …)
- Build padá při čtení z Discourse HOT 4
- Opravit kešování stránek HOT 9
- Přidat nahrávací obrazovky pro důležité stránky HOT 2
- Přidat do metrik možnost anotací
- Přidat možnost stažení dat metrik ve formátech CSV a JSON HOT 1
- Přidat do metrik stručné ukazatele vývoje
- Přidat do metrik vlastníky HOT 1
- Přidat možnost přispět darem přes Darujme
- Přepsat ruční práci s CSV na knihovnu react-papaparse
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 app.