I'm trying to add localStorage to my Todo on React, but I getting an error Cannot read properties of null (reading 'concat') when I try to add new todo item. How to fix it? Here my code:
import { useState, useEffect } from 'react';
import TodoInput from './TodoInput';
import TodoList from './TodoList';
import './App.css';
const App = () => {
const [todo, setTodo] = useState('');
const [todos, setTodos] = useState([]);
const localStorage = window.localStorage;
const [localTodos, setLocalTodos] = useState([]);
useEffect(() => {
setLocalTodos(JSON.parse(localStorage.getItem('todos')));
}, []);
function addTodo() {
if (todo !== '') {
setLocalTodos(JSON.parse(localStorage.getItem('todos')));
localTodos = localTodos.concat([todo]);
localStorage.setItem('todos', JSON.stringify(localTodos));
setTodo('');
}
};
function deleteTodo(text) {
localTodos = JSON.parse(localStorage.getItem('todos'));
localTodos = localTodos.filter((todo) => {
return todo !== text;
});
setLocalTodos(localTodos);
};
return (
<div className="App">
<h1>Your todos</h1>
<TodoInput todo={todo} setTodo={setTodo} addTodo={addTodo} />
<TodoList list={localTodos} remove={deleteTodo} />
</div>
);
}
export default App;