Size: a a a

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

2020 February 18

VO

Vitalii Obideiko [Obidos] in React Native — русскоговорящее сообщество
Sergio
Подскажите пожалуйста, как заставить flatlist внутри flatlist-а ререндерится ?
если у них одна ориентация, то это не должно быть так
источник

S

Sergio in React Native — русскоговорящее сообщество
Vitalii Obideiko [Obidos]
если у них одна ориентация, то это не должно быть так
что имеется виду под одной ориентацией?
источник

VO

Vitalii Obideiko [Obidos] in React Native — русскоговорящее сообщество
Sergio
что имеется виду под одной ориентацией?
вертикальная или горизонтальная. Комбинация разных ориентаций возможна
источник

S

Sergio in React Native — русскоговорящее сообщество
понял, у меня это аккордион раскрывается список и там ещё есть кнопка, во второт флатлисте, которая должна ререндерится
источник

MY

Mykola Yatsuk in React Native — русскоговорящее сообщество
Юра Зинченко
Смотря какой у вас кейс, есть определённые проблемы но только на дроиде и только если у вас в средине скролл, и то если поставить useNativeDriver должно быть все ок
Есть компонент SectionList внутри react-native-interactable. Добавил useNativeDriver, на андроиде осталась проблема. Если открыть, то нельзя закрить пока не свайпну вниз. Не подскажите как исправить?
источник

ЮЗ

Юра Зинченко in React Native — русскоговорящее сообщество
Mykola Yatsuk
Есть компонент SectionList внутри react-native-interactable. Добавил useNativeDriver, на андроиде осталась проблема. Если открыть, то нельзя закрить пока не свайпну вниз. Не подскажите как исправить?
нельзя закрыть за сам компонент но за хедер можно, верно?
источник

in React Native — русскоговорящее сообщество
Поменял код вот так, но символ всё ещё заметен:
class NumberInput extends React.PureComponent {
 constructor(props) {
   super(props)
   bind(this)

   this.state = { text: "" }
 }

 onChange(text) {
   if (!text.match(/[^\d\.-]/) && text.match(/^-?\d*\.?\d*$/)) {
     this.setState({text})
   } else {
     this.ref.setNativeProps({value: this.state.text})
   }
 }

 render() {
   return (
     <TextInput
       placeholder="0"
       keyboardType="numeric"
       onChangeText={this.onChange}
       value={this.state.text}
       ref={(ref) => this.ref = ref}
     />
   )
 }
}
источник

VO

Vitalii Obideiko [Obidos] in React Native — русскоговорящее сообщество
Поменял код вот так, но символ всё ещё заметен:
class NumberInput extends React.PureComponent {
 constructor(props) {
   super(props)
   bind(this)

   this.state = { text: "" }
 }

 onChange(text) {
   if (!text.match(/[^\d\.-]/) && text.match(/^-?\d*\.?\d*$/)) {
     this.setState({text})
   } else {
     this.ref.setNativeProps({value: this.state.text})
   }
 }

 render() {
   return (
     <TextInput
       placeholder="0"
       keyboardType="numeric"
       onChangeText={this.onChange}
       value={this.state.text}
       ref={(ref) => this.ref = ref}
     />
   )
 }
}
setNativeProps({ text: this.state.text });
источник

in React Native — русскоговорящее сообщество
Vitalii Obideiko [Obidos]
setNativeProps({ text: this.state.text });
Тоже видно :D
источник

MY

Mykola Yatsuk in React Native — русскоговорящее сообщество
Юра Зинченко
нельзя закрыть за сам компонент но за хедер можно, верно?
нет, вообще никак немогу
источник

ЮЗ

Юра Зинченко in React Native — русскоговорящее сообщество
Mykola Yatsuk
нет, вообще никак немогу
и на иос и на дроиде?
источник

VO

Vitalii Obideiko [Obidos] in React Native — русскоговорящее сообщество
Тоже видно :D
ну прям чтобы вобще не появлялся надо чтобы компонент принимающий был один, а отображающий другой, но тогда с редактированием проблемы, если не с конца
источник

MY

Mykola Yatsuk in React Native — русскоговорящее сообщество
Юра Зинченко
и на иос и на дроиде?
нет, только на дроиде
источник

MY

Mykola Yatsuk in React Native — русскоговорящее сообщество
на айос все ок
источник

in React Native — русскоговорящее сообщество
Vitalii Obideiko [Obidos]
ну прям чтобы вобще не появлялся надо чтобы компонент принимающий был один, а отображающий другой, но тогда с редактированием проблемы, если не с конца
Хорошо, всё равно спасибо за помощь :D
источник

ЮЗ

Юра Зинченко in React Native — русскоговорящее сообщество
Mykola Yatsuk
нет, только на дроиде
это потому что дроид слушает события скрола sectionList, а не interactable по идее можно пофиксить но костылем повесив ивент на sectionList и слушать там велосити скрола и параметр y если и то и то === 0 то можно програмно закрыть bottom-sheet
источник

MD

Max Davidov in React Native — русскоговорящее сообщество
class NumberInput extends Component {
 constructor(props) {
   super(props)
   bind(this)

   this.state = { text: "" }
 }

 onChange(text) {
   if (!text.match(/[^\d\.-]/) && text.match(/^-?\d*\.?\d*$/)) {
     this.setState({text})
   }
 }

 render() {
   return (
     <TextInput
       placeholder="0"
       keyboardType="numeric"
       onChangeText={this.onChange}
       value={this.state.text}
     />
   )
 }
}
Проблема в асинхронной коммуникации по бриджу между джс где ты устанавливаешь стейт и нативным миром. Тебе придется использовать готовую имплементацию маски ввода, которая будет работать нативно. Например https://github.com/benhurott/react-native-masked-text
источник

in React Native — русскоговорящее сообщество
Max Davidov
Проблема в асинхронной коммуникации по бриджу между джс где ты устанавливаешь стейт и нативным миром. Тебе придется использовать готовую имплементацию маски ввода, которая будет работать нативно. Например https://github.com/benhurott/react-native-masked-text
Спасибо!
источник

ИЧ

Илья Чередов in React Native — русскоговорящее сообщество
Ребят привет, вопрос касательно Typescript. У меня есть легаси проект , он на нативном js, мне нужно будет делать новые скрины и компоненты и могу ли я делать их на TS. Кароче можно ли это дело как то соединить? Просто нативный JS как то вообще не заходит
источник

MD

Max Davidov in React Native — русскоговорящее сообщество
Илья Чередов
Ребят привет, вопрос касательно Typescript. У меня есть легаси проект , он на нативном js, мне нужно будет делать новые скрины и компоненты и могу ли я делать их на TS. Кароче можно ли это дело как то соединить? Просто нативный JS как то вообще не заходит
TS можно использовать инкрементально
источник