Size: a a a

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

2020 February 14

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
Раньше был createSwitchNavigator, теперь его нет, и схема работы другая.
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Ну так вынести провайдер стейта выше за навигацию и будет знать
источник

BS

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

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
Serhey Shmyg
Ну так вынести провайдер стейта выше за навигацию и будет знать
Так провайдер и так наверху
источник

TK

Timofeev Kirill in React Native — русскоговорящее сообщество
Serhey Shmyg
Если нету кенсела фетчинга, тогда делать флаг, и при анмаунте сетить его в тру а при сете стейта проверять, если тру, то значит компоненты уже нету
можно теперь по-русски, пжлст)
источник

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
А вот configureStore()
import {applyMiddleware, createStore} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';

export default function configureStore(initialState) {
 return createStore(rootReducer, initialState, applyMiddleware(thunk));
}
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
Да блин, я полгода с RN работаю. Я знаю как коннектить на вложенных страницах. Вопрос в том, что React Navigation v5 по-другому работает. И я не могу воспроизвести пример их Authentication flow на _классовых_ компонентах (у них везде функциональные в примерах).
Вопрос нужно формулировать точнее, а то когда видишь вопрос о том как заюзать редьюсер в рендере, возникает ощущение что человек новичок, и ему нужна помощь именно в том что бы разобраться
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Timofeev Kirill
можно теперь по-русски, пжлст)
Можно кусок этого кода не картинкой. и покажу
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
А вот configureStore()
import {applyMiddleware, createStore} from 'redux';
import thunk from 'redux-thunk';
import rootReducer from './reducers';

export default function configureStore(initialState) {
 return createStore(rootReducer, initialState, applyMiddleware(thunk));
}
Где провайдер стейта?
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
выше этого АПП или нет?
источник

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
Serhey Shmyg
выше этого АПП или нет?
Нет, App - верхний уровень. Тут мы создаём провайдер и navigation container
источник

Б

Баходур in React Native — русскоговорящее сообщество
ENAMETOOLONG
Backhandler.exitApp подходит ). А для ios нет такой необходимости, фоновые процессы стопаются если приложение не активно
Backhandler.exitApp в андроеде только сворачивать app
источник

TK

Timofeev Kirill in React Native — русскоговорящее сообщество
Timofeev Kirill
можно теперь по-русски, пжлст)
useEffect(() => {
       async function fetchData(): Promise<void> {
           setShowLoading(true);
           try {
               await storageService.fetchRecalls();
           } catch (e) {
               console.error(e)
           } finally {
               setShowLoading(false);
           }
       }

       fetchData();
   }, []);
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
export default connect(mapStateToProps, {login})(App)
это? Так он крашится и не даёт
покажи mapStateToProps, второй аргумент - диспач, функу нужно оберонуть в него
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
Нет, App - верхний уровень. Тут мы создаём провайдер и navigation container
а где тогда провайдер стейта7
источник

SS

Serhey Shmyg in React Native — русскоговорящее сообщество
Timofeev Kirill
useEffect(() => {
       async function fetchData(): Promise<void> {
           setShowLoading(true);
           try {
               await storageService.fetchRecalls();
           } catch (e) {
               console.error(e)
           } finally {
               setShowLoading(false);
           }
       }

       fetchData();
   }, []);
useEffect(() => {
       let isUnmounted = false;

       async function fetchData(): Promise<void> {
           if (isUnmounted) {
               return;
           }
           
           setShowLoading(true);
           try {
               await storageService.fetchRecalls();
           } catch (e) {
               console.error(e)
           } finally {
               setShowLoading(false);
           }
       }

       fetchData();

       return () => {
           let isUnmounted = true;
       }
   }, []);
источник

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
Bogdan Shelomanov
покажи mapStateToProps, второй аргумент - диспач, функу нужно оберонуть в него
const mapStateToProps = state => ({
 userReducer: state.userReducer,
});

У меня login и есть dispatch в экшене. Он из экшена импортируется.

Но приложение так не работает, крашится
источник

Э

Эль Копетан Тотарен in React Native — русскоговорящее сообщество
источник

TK

Timofeev Kirill in React Native — русскоговорящее сообщество
Serhey Shmyg
useEffect(() => {
       let isUnmounted = false;

       async function fetchData(): Promise<void> {
           if (isUnmounted) {
               return;
           }
           
           setShowLoading(true);
           try {
               await storageService.fetchRecalls();
           } catch (e) {
               console.error(e)
           } finally {
               setShowLoading(false);
           }
       }

       fetchData();

       return () => {
           let isUnmounted = true;
       }
   }, []);
благодарю от души душевно в душу👍
источник

BS

Bogdan Shelomanov in React Native — русскоговорящее сообщество
Эль Копетан Тотарен
const mapStateToProps = state => ({
 userReducer: state.userReducer,
});

У меня login и есть dispatch в экшене. Он из экшена импортируется.

Но приложение так не работает, крашится
покажи логин свой, покажи подключение к провайдеру, покажи как берешь данные
источник