FlatList React Native с оптимизацией Redux - PullRequest
0 голосов
/ 17 июня 2020

Недавно я наткнулся на статью о том, что при использовании FlatList с redux ваш data должен быть изменяемым. Обычно в Redux (как он говорит) я рассматриваю состояние как неизменное и возвращаю новую обновленную копию в моем редукторе.

Итак, статья, которую я нашел, является анти-шаблоном тому, что предлагает Redux. Хотя он говорит об этом из-за того, что FlatList является VirtualizedList.

Итак, мой вопрос: «Должен ли я изменять данные в redux, которые будут использоваться в FlatList / VirtualizedList»?

вместо того, чтобы делать что-то вроде:

case FETCH_POSTS:
   return {
     posts: [...state.posts, ...action.newPosts]
   }

Надо сделать:

case FETCH_POSTS:
   action.newPosts.forEach((post) => state.posts.push(post))
   return

1 Ответ

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

Я бы не советовал. Как вы упомянули, это антипаттерн, и это не зря . Из-за этого я недавно обнаружил ошибку в нашем приложении. Это не только может быть причиной ошибок, но и затрудняет их поиск. можно попробовать смешанный подход, при котором вы получаете новое состояние из магазина, а затем вручную изменяете состояние FlatList.

...