Как можно деструктуризировать обьект состояния чтобы добвить или поменять только определенное значение при помощи хука useState()
При классовой компоненте я бы сделал так:
this.state = {
name: ""
text: ""
}
this.setState({
...state,
text: "123",
})
Как это сделать с использованием useState ?
const [ data, setData ] = useState({ name: "", text: "" })
setData( prev => prev.text = "123")
такой записью если и меняет то только 1 параметр.
Ответы (1 шт):
Автор решения: Ivan
→ Ссылка
Если data простой объект (без вложенных полей), то можно
const [ data, setData ] = useState({ name: "", text: "" })
setData(prev => ({ ...prev, text: "123" }))
Но в таком случае у тебя будет целиком меняться объект data.
Как вариант ты можешь разбить это на два useState.
Если не хочешь разбивать на или быть аккуратным, держа в голове, что после вызова setData, объект data каждый раз будет новым (новая ссылка).