Size: a a a

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

2020 February 05

D

Denis in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
Если использовать саги и исходить из того, что саги упрощают работу с сайд-эффектами - использовать саги для индикации загрузки и переходов между страницами (преимущественно, возврат назад при успешном сохранении в API, например) - это нормальная идея?
И если нормальная, то насколько нормально в reducer пихать NavigationService, чтоб там вызывать goBack() ?
Или как это вообще правильно реализуется?
А как быть, если у меня есть список элементов, а при клике мне надо отправить запрос, получить все детали элемента, и уже после этого переходить на страницу и выводить там эти данные? Тоже пихать NavigationService в редюсер?
А для чего пихать NavigationService в сам редьюсер? Ты можешь в экшене по success, делать NavigationService.navigate.

Сделал запрос -> получил данные -> навигейт
источник

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
Denis
А для чего пихать NavigationService в сам редьюсер? Ты можешь в экшене по success, делать NavigationService.navigate.

Сделал запрос -> получил данные -> навигейт
В экшене? Мы же оттуда просто отдаем тип и данные. Нет?
источник

LM

Leonid Molchanov in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
Если использовать саги и исходить из того, что саги упрощают работу с сайд-эффектами - использовать саги для индикации загрузки и переходов между страницами (преимущественно, возврат назад при успешном сохранении в API, например) - это нормальная идея?
И если нормальная, то насколько нормально в reducer пихать NavigationService, чтоб там вызывать goBack() ?
Или как это вообще правильно реализуется?
А как быть, если у меня есть список элементов, а при клике мне надо отправить запрос, получить все детали элемента, и уже после этого переходить на страницу и выводить там эти данные? Тоже пихать NavigationService в редюсер?
Я использую саги как структуризацию последовательности действий , это очень хорошо работает в запросах и api ... все зависит от задач , но мне кажется для тех задач которые вы хотите делать это не лучшее решение, почему не хуки?
источник

D

Denis in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
В экшене? Мы же оттуда просто отдаем тип и данные. Нет?
Не всегда. Если тебе нужно выполнить навигейт после получения  ответа сервера то добавь его в экшен. А в самом редьюсере ты работаешь непосредственно с полученными данными.
источник
2020 February 06

MD

Max Davidov in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
Если использовать саги и исходить из того, что саги упрощают работу с сайд-эффектами - использовать саги для индикации загрузки и переходов между страницами (преимущественно, возврат назад при успешном сохранении в API, например) - это нормальная идея?
И если нормальная, то насколько нормально в reducer пихать NavigationService, чтоб там вызывать goBack() ?
Или как это вообще правильно реализуется?
А как быть, если у меня есть список элементов, а при клике мне надо отправить запрос, получить все детали элемента, и уже после этого переходить на страницу и выводить там эти данные? Тоже пихать NavigationService в редюсер?
В редакс сторе не желательно хранить несереализуемые значения (функции). Для выполнения действий лучше использовать action creator’ы если redux-thunk, или саги если redux-saga. А вообще саги это переусложнение, сейчас на хуках     достаточно легко все делается.
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
я короче понял, проще и лучше сделать свой селект, его как угодно можно кастомизировать и что угодно с ним делать
источник

MD

Max Davidov in React Native — русскоговорящее сообщество
источник

G

George in React Native — русскоговорящее сообщество
Добрый вечер, парсю фото и хочу сохранить на устройстве объектами типа {id: 0, date: «», data: «»}. Как лучше сделать? Redux-persist в помощь? Cейчас храню только картинки с помощью RNFS
источник

А

Артем in React Native — русскоговорящее сообщество
Ребят может кто-нибудь делал такую анимацию/знает где найти примеры?
источник

А

Артем in React Native — русскоговорящее сообщество
свертывание компонента
источник

А

Артем in React Native — русскоговорящее сообщество
по свайпу наверх
источник

А

Артем in React Native — русскоговорящее сообщество
использую react navigation
источник

x

xxx in React Native — русскоговорящее сообщество
Здравствуйте а как можно цвет статус бара телефона поменять ?
источник

VK

Vladimir Kalashnikov in React Native — русскоговорящее сообщество
источник

x

xxx in React Native — русскоговорящее сообщество
Спасибо
источник

А

А В in React Native — русскоговорящее сообщество
я это
источник

А

А В in React Native — русскоговорящее сообщество
просто оставлю это здесь
источник

А

А В in React Native — русскоговорящее сообщество
источник

VP

Vitaliy Ponomarev in React Native — русскоговорящее сообщество
пуленепробиваемая проверка (ну мало ли, а вдруг...) 😆
источник

AE

Andrey Eremenko in React Native — русскоговорящее сообщество
Подскажите пожалуйста: как сохранять состояние компонентов при переключении с одного экрана на другой?
Вот здесь при переключении между экранами срабатывает componentWillUnmount, но мне необходимо сохранять состояние неактивного экрана как это происходит при использовании StackNavigator
class FirstComponent extends React.Component<{}> {
   componentDidMount() {
       console.log('FirstComponent componentDidMount');
   }

   componentWillUnmount() {
       console.log('FirstComponent componentWillUnmount');
   }

   render() {
       const { navigation } = this.props;
       return (
           <Page>
               <Text>FirstComponent</Text>
               <Text onPress={() => navigation.navigate('Second')} style={{ color: 'blue' }}>to SecondComponent</Text>
           </Page>
       );
   }
}

class SecondComponent extends React.Component<{}> {
   componentDidMount() {
       console.log('SecondComponent componentDidMount');
   }

   componentWillUnmount() {
       console.log('SecondComponent componentWillUnmount');
   }

   render() {
       const { navigation } = this.props;
       return (
           <Page>
               <Text>SecondComponent</Text>
               <Text onPress={() => navigation.navigate('First')} style={{ color: 'blue' }}>to FirstComponent</Text>
           </Page>
       );
   }
}

const AppStack = createSwitchNavigator({
   First: createStackNavigator({ FirstComponent }),
   Second: createStackNavigator({ SecondComponent })
}, {
   resetOnBlur: true,
   initialRouteName: 'First'
});
источник