React: Требует функцию не там где нужно

Извините, если название вопроса слегка не точное.

Итак, я ввожу данные в input. Вешаю onChange и при каждом изменении результат сохраняется в value.

<input 
    placeholder='Введите текст'
    type='text' 
    id='input' 
    onChange={(e) => setValueFunc(e.target.value)} 
    value={value}>                   
</input>
<button className='add-btn' onClick={() => addItemFunc()}>Добавить</button>

При клике на кнопку хотел реализовать проверку на наличие value в items (если нет - то добавить). Но столкнулся с ошибкой, что value должен был функцией

TypeError: Мой текст is not a function
addItemFunc
C:/Users/user/Desktop/рабочий стол/web/webprojects/react-todo/src/Components/TodoList.jsx:20
  17 |    }
  18 | 
  19 |    const addItemFunc = () => {
> 20 |        if(items.findIndex(value) == -1){
     | ^  21 |            setItems([...items, value])
  22 |        }
  23 |    }

Очень странная ошибка, как по мне. В чем может быть причина? (при этом setItems([...items, value]) вполне работает)

код


Ответы (1 шт):

Автор решения: Sanya H

findIndex принимает параметром коллбек-функцию. В вашем случае достаточно использовать indexOf

const addItemFunc = () => {
  if(items.indexOf(value) == -1){
    setItems([...items, value])
  }
}
→ Ссылка