Я бы научил вас секрету, который очень хорошо работал для меня на протяжении многих лет. Когда javascript выдает такую ошибку, как cannot read property ***whateverValue*** value of undefined
, это означает, что вы пытаетесь прочитать свойство несуществующего объекта. В этом случае объект, с которого вы пытаетесь прочитать, - undefined
, следовательно, у него не может быть пары key: value
.
. Вернуться к вашему вопросу: TypeError: Cannot read property value of undefined
- Использование
cmd+f
для проверки всех мест, где используется значение, показывает меня везде, где вы использовали value
на event.target.value
Оставайтесь со мной (я знаю, что это скучно, но это поможет позже ).
У вас есть обработчик событий с именем updateSearch
.
Все, что вам нужно здесь сейчас, это изменить свой входной тег следующим образом:
<input type="text" value={search} onChange={updateSearch}/>
Не волнуйтесь, React обработает все остальное, он автоматически анализирует событие в eventHandler, к которому затем можно получить доступ в таком eventHandler.
Кроме того, я думаю, что вы, возможно, захотите рефакторинг этого component.
Что-то вроде import React, {useState, useEffect} from React
, вам не нужно будет звонить React.useEffect
или React.useState
в других частях проекта. просто useEffect
или useState
. Гудлак: + 1