Destell
@Destell
React, React Native junior developer

Warning при передаче MobX отслеживаемого массива — какое решение адекватнее?

Приложение
Есть компонент с редактированием данных в карточке. При добавлении новых полей телефона возникает ошибка
[mobx.array]
Attempt to read an array index(2) that is out of bounds (2).
Please check length first. Out of bound indices will not be tracked by MobX


Получив эту ошибку, поправил передачу данных из стора в компонент таким образом
return (
                <>
                    {items.map(item => (
                        <Card
                            key={item.id}
                            id={item.id}
                            item={{
                                ...item,
                                phoneValues: item.phoneValues.slice()
                            }}
                        />
                    ))}
                </>
            );


Однако, мне кажется, это решение не очень хорошее из-за указания конкретного имени (phoneValues). Есть смысл добавить перебор свойств объекта с проверкой на isArray вместо указания имени конкретного свойства, содержащего массив?
  • Вопрос задан
  • 1817 просмотров
Решения вопроса 1
Destell
@Destell Автор вопроса
React, React Native junior developer
Запоздалый ответ на свой же вопрос - надо было использовать нативный mobx toJS, а не slice из рекомендованных решений оттуда же.
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
0xD34F
@0xD34F Куратор тега React
мне кажется, это решение не очень хорошее из-за указания конкретного имени (phoneValues)

Выглядит не "не очень хорошим", а просто отвратительным - типа, не буду я разбираться с потенциальным багом, а вместо этого соответствующее предупреждение просто замету под ковёр. Ну, сделали вы slice - от этого в компоненте Card обращение к несуществующим элементам phoneValues никуда не делось.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы