Продолжаем курс по Redux или клонируем репу:
git clone https://github.com/react-native-village/react-native-init.git
Окончательный код проекта дуступен здесь
Переходим в папку проекта
cd react-native-init/stargate2
Удалям редакс из проекта
| import { useApolloClient } from 'react-apollo-hooks' | |
| const App = () => { | |
| const client = useApolloClient() | |
| const onPress = elem => () => client.writeData({ data: { elem } }) | |
| return ( | |
| <View> | |
| <TouchableOpacity onPress={onPress('text')}> | |
| <Text>Set</Text> |
Продолжаем курс по Redux или клонируем репу:
git clone https://github.com/react-native-village/react-native-init.git
Окончательный код проекта дуступен здесь
Переходим в папку проекта
cd react-native-init/stargate2
Удалям редакс из проекта
| export default { | |
| test: 'Hello', | |
| history: [ | |
| { | |
| id: 0, | |
| up: false, | |
| }, | |
| { | |
| id: 1, | |
| up: false, |
| import React from 'react' | |
| import { Provider } from 'react-redux' | |
| import { composeWithDevTools } from 'redux-devtools-extension' | |
| import { createStore, applyMiddleware } from 'redux' | |
| import ReduxThunk from 'redux-thunk' | |
| import reducers from './src/reducers' | |
| import AppNavigator from './src/AppNavigator' | |
| const store = createStore(reducers, composeWithDevTools(applyMiddleware(ReduxThunk))) |
| import React from 'react' | |
| import { AsyncStorage } from 'react-native' | |
| import { Query } from 'react-apollo' | |
| import gql from 'graphql-tag' | |
| import { TOKEN_KEY } from '../constants' | |
| import { Spinner } from '../components' | |
| const REFRESH_TOKEN_QUERY = gql` | |
| query($token: String!) { | |
| update_token(token: $token) { |
| java.lang.RuntimeException: com.facebook.react.uimanager.IllegalViewOperationException: Trying to add unknown view tag: 733 | |
| detail: View tag:735 | |
| children(2): [ | |
| 723,727, | |
| ], | |
| viewsToAdd(1): [ | |
| [2,733], | |
| ], | |
| at com.facebook.react.bridge.ReactContext.handleException(ReactContext.java:311) |
| com.facebook.react.bridge.JSApplicationIllegalArgumentException: Error while updating property 'height' in shadow node of type: RCTView | |
| at com.facebook.react.uimanager.ViewManagersPropertyCache$PropSetter.updateShadowNodeProp(ViewManagersPropertyCache.java:116) | |
| at com.facebook.react.uimanager.ViewManagerPropertyUpdater$FallbackShadowNodeSetter.setProperty(ViewManagerPropertyUpdater.java:157) | |
| at com.facebook.react.uimanager.ViewManagerPropertyUpdater.updateProps(ViewManagerPropertyUpdater.java:61) | |
| at com.facebook.react.uimanager.ReactShadowNodeImpl.updateProperties(ReactShadowNodeImpl.java:458) | |
| at com.facebook.react.uimanager.UIImplementation.createView(UIImplementation.java:295) | |
| at com.facebook.react.uimanager.UIManagerModule.createView(UIManagerModule.java:408) | |
| at java.lang.reflect.Method.invoke(Native Method) | |
| at com.facebook.react.bridge.JavaMethodWrapper.invoke(JavaMethodWrapper.java:372) | |
| at com.facebook.react.bridge.JavaModuleWrapper.invoke(JavaModuleWrapper.java:160) |
| import React, { PureComponent } from 'react' | |
| import { Text, View, StyleSheet } from 'react-native' | |
| import moment from 'moment' | |
| import { LIGHT_GRAY, WHITE, BLACK } from '../../styles/colors' | |
| class Timer extends PureComponent { | |
| state = { | |
| remainingTime: 0, | |
| isTimerVisible: true | |
| } |
| import React, { PureComponent } from 'react' | |
| import { Text, View, StyleSheet } from 'react-native' | |
| import { ifIphoneX } from 'react-native-iphone-x-helper' | |
| const styles = StyleSheet.create({ | |
| container: { | |
| ...ifIphoneX( | |
| { | |
| paddingTop: 7 | |
| }, |