скинь свой код
import React, {useState, useEffect} from 'react';
// import Preloader from '../../common/preloader/Preloader';
const ProfileStatusWithHooks = (props) => {
let [editMode, setEditMode] = useState(false); // editMode = false
let [status, setStatus] = useState(props.status); // status = props.status
// let arr = [0, () => {}];
// let [a, setA] = arr;
// let stateWithSetState = useState(true);
// let editMode = stateWithSetState[0];
// // здесь сидит первое значение (то есть false)
// let setEditMode = stateWithSetState[1];
// // функция, которая изменяет одиночное значение
// //(устанавливает значение это (в данном случае это false))
useEffect(() => { // срабатывает в самом конце компоненты
setStatus(props.status);
console.log("Effect");
}, [props.status]); // определяется зависимость в []
// отрисовки (первый раз само, а дальше по зависимости)
const activateMode = () => {
setEditMode(true);
}
const deactivateEditMode = () => {
setEditMode(false);
props.updateStatus(status);
}
const onStatusChange = (e) => {
setStatus(e.currentTarget.value);
}
return (
<div>
{console.log("return")}
{!editMode
? <div>
<span onDoubleClick={activateMode}>
{props.status || "No status"}</span>
</div>
: <div>
<input onChange={onStatusChange}
autoFocus={true}
onBlur={deactivateEditMode}
value={status}></input>
</div>}
</div>
);
}
export default ProfileStatusWithHooks;