1. Зачем вы вешаете слушатель на реф?
useEffect(() => {
titleRef.current.addEventListener('keyup', addTodo); // <-- ???
return () => titleRef.current.removeEventListener('keyup', addTodo);
}, [])
2. Зачем вы используете фрагмент, когда возвращаете всего один элемент?
return (
<> // <-- ???
<input
type="text"
value={ title }
onChange={ e => setTitle(e.target.value) }
ref={ titleRef }
/>
</> // <-- ???
);
3. Не используйте свойство
keyCode оно является устаревшим, вместо него вы можете использовать
key.
function addTodo(e) {
if(e.keyCode === keyCodeEnter) { // <-- e.key === "Enter"
props.addTodoCreator({
title: title,
isCompleted: false,
color: 0,
});
}
}
Измените ваш код на этот:
const Header = ({ addTodoCreator }) => {
const [title, setTitle] = useState("");
const addTodo = (e) => {
if (e.key === "Enter") {
addTodoCreator({
title: title,
isCompleted: false,
color: 0,
});
}
};
return (
<input
type="text"
value={title}
onChange={(e) => setTitle(e.target.value)}
onKeyUp={addTodo}
/>
);
};