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])
}
}
