-
Notifications
You must be signed in to change notification settings - Fork 0
/
App.js
77 lines (70 loc) · 1.62 KB
/
App.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
import React, { Component } from 'react';
import {
Platform,
StyleSheet,
Text,
View,
TouchableOpacity
} from 'react-native';
import {connect} from 'react-redux' // To use dispatch method on app
import {fetchPeopleFromAPI} from './actions'
const App = (props) => {
const {isFetching, people} = props.people
console.log(props.people)
return (
<View style={styles.container}>
<Text style={styles.welcome}>
REDUX APP
</Text>
<TouchableOpacity onPress={props.fetchFromAPI} style={styles.button}>
<Text>Fetch</Text>
</TouchableOpacity>
{isFetching && <Text> Loading </Text>}
{people.length ? (
people.map((person,index) => {
return(
<View key={index}>
<Text>Name: {person.name}</Text>
</View>
)
})
):null}
</View>
);
}
const styles = StyleSheet.create({
container: {
flex: 1,
justifyContent: 'center',
alignItems: 'center',
backgroundColor: '#F5FCFF',
},
welcome: {
fontSize: 20,
textAlign: 'center',
margin: 10,
},
button:{
backgroundColor: 'red',
height: 60,
},
instructions: {
textAlign: 'center',
color: '#333333',
marginBottom: 5,
},
});
// To access GET our redux state
function mapStateToProps(state){
// state here refers to our index.js reducer
return{
people: state.people
}
}
// To update our redux state
function mapDispatchToProps(dispatch){
return{
fetchFromAPI: () => dispatch(fetchPeopleFromAPI())
}
}
export default connect(mapStateToProps,mapDispatchToProps)(App)