• 1399/04/29

خطایCannot read property 'findIndex' of undefined :

 .
 
.
const GlobalState = (props) => {
    const [getTodos, setTodos] = useState([]);
    const [getTodo, setTodo] = useState("");
    .
    .
    .
 const handleEditTodo= (event,id) =>{
        const{todos}=getTodos;
        const todoIndex=todos.findIndex(t => t.id=== id);
        const todo=todos[todoIndex];
        todo.text=event.target.value;
        todos[todoIndex]=todo;
        setTodos(todos);
    }

سلام استاد وقتتون بخیر و تشکر از آموزش خوبتون. در برنامه todolist شما دکمه ادیت را قرار ندادید من گذاشتم ولی ارور بالا را میده دلیلش چیه؟

  • 1399/04/30
  • ساعت 09:51

سلام دوست من

گفته که من نمی تونم از یک undefined که به معنای خالی بودن هست index پیدا کنم

مشکل از این خط هست

 const{todos}=getTodos;

مفهوم این خط : من از آبجکت getTodos فقط todos رو می خوام

ولی getTodos آرایه هست و چیزی به نام todos درون خودش نداره

const todos = [...getTodos];

ببینید به این شکل بنویسید مشکلتون حل میشه

مشکلی بود در خدمتم


  • 1399/04/31
  • ساعت 14:21

ممنون از پاسختون .بله شما درست میفرمایید خطا رفع شد ولی همچنان روی دکمه ادیت که کلیک میکنم هیچ متنی تایپ نمیکنه و فقط متن نوشته شده را پاک میکند.


  • 1399/05/01
  • ساعت 11:00

خط به خط لاگ چاپ کنید ببینید مشکل از کجاست


logo-samandehi