Executando verificação de segurança...
2

Definir state usando utilizando Currying - #ReactJS

    Bem antes de partir para o exemplo precisamos definir o que Currying?

    Currying é um processo em programação funcional no qual podemos transformar uma função com múltiplos argumentos em uma sequência de funções aninhadas. Ele retorna uma nova função que espera o próximo argumento embutido.
    Usando currying, você pode compor funções para diferentes propósitos. Neste caso, estamos usando uma função para criar diferentes funções "setter" para atualizando o estado em React.
import React from 'react'
const Form = () => {
  const [username, setUsername] = React.useState('')
  const [password, setPassword] = React.useState('')

  const setInput = (setter) => (event) => {
    setter(event.currentTarget.value)
  }

  return (
    <form>
      <input value={username} onChange={setInput(setUsername)} />
      <input value={password} onChange={setInput(setPassword)} />
    </form>)
  }
Carregando publicação patrocinada...
1

Muito bom usar programação funcional para reduzir código, hoje em dia é muito comum utilizar funções como o map, filter e reduce, elas melhoram muito a qualidade do código

Uma curiosidade para os nerds ai é que Currying foi uma técnica utilizada extensivamente por Haskell Curry (Apesar de ter sido pensada 6 anos antes por Moses Schönfinkel), e seu nome é usado em homenagem na linguagem de programação puramente funcional Haskell

Sem o currying, não seria possível ter funções com múltiplos parâmetros no cálculo lambda, que é um modelo de expressar computação através da lógica matemática, comumente comparada a Máquina de Turing, e que foi utilizada por muitas linguagens de programação