в пропсе data изначально прописывала массив пользователей users, но мне нужно их отсортировать таким образом, чтобы самым первым рендерился авторизованный пользователь. Последовав совету, я прописала таким вот образом: вместе data={users} написала data={moveUserToBeginning(user)}. Эта функция собственно возвращает shallow copy от основного юзера. В итоге при переходе на страницу сразу выскакивает ошибка Cannot read properties of undefined. Может нельзя вот так вызывать функцию или ещё какие-то другие причины могут быть? Вот мой код:
там не лишний вызов? ()(users)
он ничего не меняет) это я просто экспериментировала, но даже убрав его ситуация не меняется. У меня есть одно соображение на этот счет: в данной компоненте присутствует useEffect, так вот когда выскакивает ошибка, то до useEffecta дело даже не доходит, и получается, что сама функция, которую я вызываю в пропсе data, возвращает Undefined. Возможно в этом причина ошибки. Но тогда как это решить...
показывает на ф-ю renderItem, покажи ее
птмушо нужно функцию moveUsers поставить перед renderItem
эту ошибка случайно попала на скрин) в общем я вроде как решила эту головоломку добавлением условного рендеринга самой функции:
а что значит users.findIndex(userIndex!)?
> 1 из условия можно убрать
а как правильно?
указать typescript что там чтоно не undefined и не null
но лучше так никогда не писать и всегда проверять
случайно наткнулась на этот оператор ! в Typescript. Хотела сейчас ссылку сбросить, но что-то не могу его найти. Подскажите, как он называется
а почему лучше так не писать?
ошибка может в рантайме случится
а как например в моем случае это можно обойти? просто если я уберу этот !, то будет подчеркивать значение в скобках. Причем я проверяла даже на элементарных примерах с примитивами - почему-то подчеркивает и лишь когда добавляю !, то всё нормально.
конкретно тут лучше findIndex как вам подсказали уже использовать
const userIndex = users.findIndex(user => user.id === uid); if (userIndex === -1) { return users; } дальше ваш код
Обсуждают сегодня