TypeError: files.pu sh не является функцией - PullRequest
0 голосов
/ 17 июня 2020

Я пробую имя файлов на входе, используя состояние и отображая заголовки на странице. Первый файл отображается правильно на странице, однако вторые введенные файлы дают мне ошибку, которая гласит: «TypeError: files.pu sh не является функцией». Pu sh работает правильно, потому что я вижу массив в консоли. Я установил файлы setFiles для повторного рендеринга страницы и отображения имени файлов.

const [files, setFiles] = useState<any[]>([])

const handleChange = (event: any) => {
    files.push(event.target.files[0].name)
    setFiles(event.target.files[0].name)
}

1 Ответ

0 голосов
/ 17 июня 2020

Вы не должны изменять состояние напрямую, как это делает анти-шаблон React, вам следует использовать функцию setFiles для его обновления, а вместо использования pu sh вы можете использовать оператор распространения для создания добавлен новый массив с новым именем.

const [files, setFiles] = useState<any[]>([])

const handleChange = (event: any) => {
    const name = event.target.files[0].name
    setFiles(files=> [...files, name])
}
...