Переход от компонента класса к функциональному компоненту, setState as useState

Есть ли простой способ установить переменные состояния, как показано ниже, при переходе с RCC на RFC?

Так что в моем RCC у меня есть что-то подобное.

changeState(e) {
    this.setState({
        [e.currentTarget.name]: e.currentTarget.value
    })
}

Можно ли написать это в RFC?

Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
Поведение ключевого слова "this" в стрелочной функции в сравнении с нормальной функцией
В JavaScript одним из самых запутанных понятий является поведение ключевого слова "this" в стрелочной и обычной функциях.
Концепция локализации и ее применение в приложениях React ⚡️
Концепция локализации и ее применение в приложениях React ⚡️
Локализация - это процесс адаптации приложения к различным языкам и культурным требованиям. Это позволяет пользователям получить опыт, соответствующий...
Навигация по приложениям React: Исчерпывающее руководство по React Router
Навигация по приложениям React: Исчерпывающее руководство по React Router
React Router стала незаменимой библиотекой для создания одностраничных приложений с навигацией в React. В этой статье блога мы подробно рассмотрим...
Массив зависимостей в React
Массив зависимостей в React
Все о массиве Dependency и его связи с useEffect.
0
0
67
2
Перейти к ответу Данный вопрос помечен как решенный

Ответы 2

Ответ принят как подходящий

Как насчет

import { useState, useCallback } from 'react';

const [state, setState] = useState({});
const changeState = useCallback((e) => {
    setState(oldState => ({ ...oldState, [e.currentTarget.name]: e.currentTarget.value }))
}, [])

хотя это имеет смысл, кажется, что мой сайт зависает, когда я начинаю печатать элемент ввода, я использую changeState()..

iNemesis 22.06.2019 12:54

О, мой плохой. Я не добавил deps [] в конце .. Теперь, кажется, все в порядке

iNemesis 22.06.2019 13:00

У меня есть функция handleChangeEvent, которая принимает заданную функцию в качестве аргументов и связывает ее как собственный кастомный хук.

handleChangeEvent = (setFunction, e) => {
  setFunction(e.target.value)
}

Затем в вашем компоненте вы можете использовать что-то вроде

event => handleChangeEvent(setName, event)

Другие вопросы по теме