Size: a a a

React Native — русскоговорящее сообщество

2021 July 02

МР

Михаил Р. in React Native — русскоговорящее сообщество
если переключать надо то было бы что то типа :
item.checked = !item.checked
но так работать не будет, нужно вызывать перерисовку. Как хранишь данные ?
и изначально checked есть у item?
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
да  добавил всем по умолчанию false
источник

МР

Михаил Р. in React Native — русскоговорящее сообщество
так а данные в state или в redux хранятся ?
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
mobx )
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
сейчас пробую в стейт передать и попробовать менять
источник

DR

Den Ri in React Native — русскоговорящее сообщество
Хотелось бы какое нибудь решение, что бы в браузере смотреть компоненты)
источник

DR

Den Ri in React Native — русскоговорящее сообщество
Например через тот же эмуль, как в эспо снэк
источник

МР

Михаил Р. in React Native — русскоговорящее сообщество
нужна функция в mobx которая по id например будет искать этот item и менять checked у него
источник

МР

Михаил Р. in React Native — русскоговорящее сообщество
и в onPress вызывать её
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
я так попробовал но видимо надо через стейт

private onChangeItem = (item) => {
   return this.filteredItems().filter(it => {
     if (it.id === item.id) {
       it.checked = !it.checked;
       //this.setState({checked: !this.state.checked})
     }
   });
 };
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
сам список через стейт
источник

B

Bod'ka 🖤 in React Native — русскоговорящее сообщество
Просто item.checked = !item.checked
источник

МР

Михаил Р. in React Native — русскоговорящее сообщество
this.filteredItems() после этой функции зачем filter ?
нужен map или forEach в случае mobx (могу ошибаться)
источник

ИС

Ильдан Сайдиев... in React Native — русскоговорящее сообщество
решил через стейт

onChange(id) {
   let newList = this.state.list.map(item => {
     if (item.id === id) {
       item.checked = !item.checked;
     }
     return {
       ...item
     }
   });
   this.setState(prev => Object.assign(prev, {list: newList}))
 }
источник

A

Avo in React Native — русскоговорящее сообщество
а как часто происходит это действие и на сколько большой список ?  

в коде достаточно много сложный операций, некоторые вообще можно избежать, например, деструктуризация в мапе

onChange(id) {
   let newList = this.state.list.map(item => {
     if (item.id === id) {
       item.checked = !item.checked;
     }
     
     return item
   });

   this.setState({ list: ...newList })
}


но гораздо лучше изменить структуру, советую посмотреть на второй пример(flatlist-selectable) - https://reactnative.dev/docs/flatlist
источник

A

Akbar in React Native — русскоговорящее сообщество
К сожалению не работает
источник

A

Akbar in React Native — русскоговорящее сообщество
Кто нибудь сталкивался с такой ошибкой?
Варианты из Гугл не работают*
pod install, rebuild тоже
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
поставить поды, пересобрать
источник

A

Akbar in React Native — русскоговорящее сообщество
Можно поточнее?
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
вот как раз то, что у вас дописано как "тоже" не работает
источник